java.util.Arrays类即为操作数组的工具类, 包含了用来操作数组(比如排序和搜索) 的各种方法。
(1)数组元素比较
boolean equals(int[] a,int[] b):判断两个数组是否相等。
Demo:
int[] arr1 = new int[]{1,2,3,4};
int[] arr2 = new int[]{1,3,2,4};
boolean isEquals = Arrays.equals(arr1, arr2);
System.out.println(isEquals);
(2)输出数组信息
System.out.println(Arrays.toString(arr1));
(3)填充数组元素
数组完成声明后,可以通过 Arrays 类的静态方法 fill() 来对数组中的元素进行替换。该方法通过各种重载形式可完成对任意类型的数组元素的替换。
void fill(int[] a,int val): 将指定值填充到数组之中。
fill(int[] array,int fromindex,int toindex,value):指定的 int 值分配给int 类型数组指定范围中的每个元素。填充范围从索引 fromIndex(包含)到索引 toindex(不包含)。如果 fromindex == toindex,则填充范围为空。
Demo:
1 public static void main(String[] args) {
2 int[] array = new int[]{5,15,25,35,45,55,65,75,85,95};
3 Arrays.fill(array,2,6,8);
4 for (int i : array) {
5 System.out.println(i);
6 }
7 }
Tips:如果指定的索引位置大于或等于要进行填充的数组的长度,则会报出 ArrayIndexOutofBoundsException (数组越界异常)。
(4)数组排序
可以通过 Arrays 类的静态 sort() 方法可以实现对数组的排序。该方法提供了多种重载形式,可对任意类型的数组进行升序排序
void sort(int[] a):对数组进行排序。
(5)在数组中查找
Arrays 类的 binarySearch() 方法,可使用二分搜索法来搜索指定数组,以获得指定对象。该方法返回要搜索的元素的索引值。
int binarySearch(int[] a,int key):在整个数组中查找
binarySearch(Object[] array,int fromIndex,int toIndex,Object key):在指定的范围中查找值;(如果范围中的所有元素都小于指定的键,则为 toIndex)
Tips:在进行调用之前对数组进行排序(通过 sort() 方法,如果没有对数组排序,结果是不确定的)
(6)复制数组
Arrays 类的 copyOf() 方法与 copyOfRange() 方法可以实现对数组的复制。copyOf() 方法的复制数组至指定长度,copyOfRange() 方法则将指定数组的指定长度复制到一个新数组中。
a、copyOf()方法
copyOf(array,int newlength);
newLength是 int 型常量,指复制后的新数组的长度。如果新数组的长度大于数组 array 的长度,则根据不同类型的数组用各自的默认值填充(如int类型用0填充),如果复制后的数组长度小于数组 array 的长度,则会从数组 array 的第一个元素开始截取至满足新数组长度为止。
b、copyOfRange() 方法
copyOfRange(array,int fromIndex,int toIndex)
fromIndex:指定开始复制数组的索引位置,fromindex 必须在 0 至整个数组的长度之间。新数组包括索引是 fromIndex 的元素。
toIndex:要复制范围的最后索引,可大于数组 array 的长度。新数组不包括索引是 toIndex 的元素。
Demo:
1 public static void main(String[] args) {
2 int[] array = new int[]{12,15,17};
3 int[] newarray = Arrays.copyOfRange(array,1,5);
4
5 for (int i:newarray) {
6 System.out.println(i);
7 }
8 }