目录:
- 1.Arrays类
- 2.Arrays常用方法
- (1) asList(T... a):主要用于遍历
- (2) fill()
- (3) copyOf() && copyOfRange()
- (4) equals()
- (5) sort()
- (6) binarySearch()
1.Arrays类
- Arrays位于java.util包下(Arrays是一个操作数组的工具类)
- Arrays包含各种操作数组的方法(例如排序和搜索)。该类还包含一个静态工厂,允许将数组视为列表。
- Arrays类里的方法都是静态方法可以通过
Arrays.方法名()
直接调用
2.Arrays常用方法
(1) asList(T… a):主要用于遍历
List<String> list = Arrays.asList("a","b","c");
- 该方法适用于对象型数据的数组(String、Integer…)
- 该方法不建议使用于基本数据类型的数组(byte,short,int,long,float,double,boolean)
- 该方法将数组与List列表链接起来:当更新其一个时,另一个自动更新
- 不支持add()、remove()、clear()等方法
运行效果:
(2) fill()
给定特定值val,使整个数组中或者某下标范围内的元素值为val。
代码实例:
import java.util.Arrays;
public class ArraysTest04
{
public static void main(String[] args)
{
int[] a = new int[7];
int[] b = new int[7];
Arrays.fill(a,3);
Arrays.fill(b,3,5,6);
for(int i = 0;i<a.length;i++)
{
System.out.print(a[i]+",");
}
System.out.print("\n");
for(int i = 0;i<b.length;i++)
{
System.out.print(b[i]+",");
}
System.out.print("\n");
}
}
运行效果:
(3) copyOf() && copyOfRange()
- copyOf():将原始数组的元素,复制到新的数组中,可以设置复制的长度(即需要被复制的元素个数)。
- copyOfRange():将某个范围内的元素复制到新的数组中。
代码实例:
import java.util.Arrays;
public class ArraysTest03
{
public static void main(String[] args)
{
int[] a = {1,3,5,3,6,7};
int[] b;
int[] c;
int[] d;
System.out.println("-----------原始数组---------");
for(int i = 0;i<a.length;i++)
{
System.out.print(a[i]+",");
}
System.out.print("\n");
b = Arrays.copyOf(a,7);//将a数组的内容复制到b数组中,如果新的数组长度大于原来数组的长度,那么用0来填充
c = Arrays.copyOf(a,3);
d = Arrays.copyOfRange(a,2,4);
System.out.println("-----------复制数组---------");
for(int i = 0;i<b.length;i++)
{
System.out.print(b[i]+",");
}
System.out.print("\n");
for(int i = 0;i<c.length;i++)
{
System.out.print(c[i]+",");
}
System.out.print("\n");
for(int i = 0;i<d.length;i++)
{
System.out.print(d[i]+",");
}
System.out.print("\n");
}
}
运行效果:
(4) equals()
判断两个数组中的元素是否一一对应相等。
代码实例:
import java.util.Arrays;
public class ArraaysTest05
{
public static void main(String[] args)
{
int[] a = new int[]{1,2,3};
int[] b = null;
int[] c = new int[]{};
int[] d = new int[]{1,2,3};
System.out.println(Arrays.equals(a,b));
System.out.println(Arrays.equals(a,c));
System.out.println(Arrays.equals(a,d));
System.out.println(Arrays.equals(b,c));
System.out.println(Arrays.equals(b,d));
System.out.println(Arrays.equals(c,d));
}
}
运行效果:
(5) sort()
对数组进行升序排序,排序后 ,数组中存放的是排序后的结果。
代码实例:
import java.util.Arrays;
public class ArraysTest05
{
public static void main(String[] args)
{
int[] a ={34,56,23,565,23,-56};
Arrays.sort(a);
for(int i = 0;i<a.length;i++)
{
System.out.print(a[i]+",");
}
System.out.print("\n");
}
}
运行效果:
(6) binarySearch()
对排序好的数组,采用二分查找的方式查找某个元素,可以在整个数组中查找,也可以在某个范围内查找。
代码实例:
import java.util.Arrays;
public class ArraysTest02
{
public static void main(String[] args)
{
int[] a = {1,45,78,23,123,98,67,12,90,56};
System.out.println("-----------原始数组---------");
for(int i = 0;i<a.length;i++)
{
System.out.print(a[i]+",");
}
System.out.print("\n");
Arrays.sort(a);
System.out.println("-----------排序后数组---------");
for(int i = 0;i<a.length;i++)
{
System.out.print(a[i]+",");
}
System.out.print("\n");
System.out.print("在整个数组中寻找:");
System.out.println(Arrays.binarySearch(a,78));
System.out.print("在局部范围内寻找:");
System.out.println(Arrays.binarySearch(a,4,7,1));
}
}
运行效果:
本篇博客主要对Java Arrays工具类用法详解进行学习!