Arrays工具类.
java.util.Arrays
1、equals(arr1,arr2)
.
判断两个数组内容是否相等
底层源码.
(以参数类型int,Object为例)
public static boolean equals(int[] a, int[] a2) {
if (a==a2)
return true;
if (a==null || a2==null)
return false;
int length = a.length;
if (a2.length != length)
return false;
for (int i=0; i<length; i++)
if (a[i] != a2[i])
return false;
return true;
}
public static boolean equals(Object[] a, Object[] a2) {
if (a==a2)
return true;
if (a==null || a2==null)
return false;
int length = a.length;
if (a2.length != length)
return false;
for (int i=0; i<length; i++) {
Object o1 = a[i];
Object o2 = a2[i];
if (!(o1==null ? o2==null : o1.equals(o2)))
return false;
}
return true;
}
测试.
int[] arr = {4,5,6,1,2,3};
int[] arr1 = {4,5,6,1,2,3};
System.out.println(arr.equals(arr1));//false
System.out.println(Arrays.equals(arr, arr1));//true
2、fill(arr,value)
and toString()
.
将指定值填充到数组之中
按
[ 元素1+ ... + 元素n]
格式打印数组
测试.
String[] a = {"","",""};
Arrays.fill(a, "value");
System.out.println(Arrays.toString(a)); // [value, value, value]
3、sort(arr)
.
对数组排序:快速排序
测试.
int[] a = {1,5,2,3};
Arrays.sort(a);
System.out.println(Arrays.toString(a));//[1, 2, 3, 5]
4、binarySearch(arr,key)
.
二分查找
测试.
int[] a = {-12,-4,1,2,3};
System.out.println(Arrays.binarySearch(a, 2));//找到了 返回值 为索引 3
System.out.println(Arrays.binarySearch(a, -4));//找到了 返回值 为索引 1
System.out.println(Arrays.binarySearch(a, -12));//找到了 返回值 为索引 0
System.out.println(Arrays.binarySearch(a, 12));//没找到 返回值 < 0