Arrays类(常用的方法)
① binarySearch(类型名[] arr,类型名 a) 二分查找,查找a在数组arr的位置下标。返回的是一个int型数组下标。当a查询不到时,返回一个小于0的值。
eg:
public static void main(String[] args) {
int[] arr = {1,4,7,32,67,100};
int index = Arrays.binarySearch(arr,7);
System.out.println(index);
}
运行结果:2
② 方法copyOf
重新创建一个数组,将原数组复制到新数组并且做到了扩容。
public static void main(String[] args) {
int[] arr1 = {1,4,7,32,67,100};
int[] arr;
arr = Arrays.copyOf(arr1,10);
System.out.println(Arrays.toString(arr));
}
结果:[1, 4, 7, 32, 67, 100, 0, 0, 0, 0]
③ 方法copyOfRange
将指定数组的范围复制到新数组中,下面举一个例子
public static void main(String[] args) {
int[] arr1 = {1,4,7,32,67,100};
int[] arr2 = {2,32,4};
int[] arr;
arr2 = Arrays.copyOfRange(arr1,2,6);
System.out.println(Arrays.toString(arr2));
}
运行结果:[7, 32, 67, 100] //很明显原来的arr2数组的值被覆盖了
④ 关于String deepToString(Object[] obj)方法的使用:在这个地方我有一个疑惑,就是为什么arr2数组不能使用int类型声明,是因为返回值String限制了吗
public static void main(String[] args) {
//int[] arr1 = {1,4,7,32,67,100};
Object[] arr2 = {"2","32","4"};
//int[] arr;
//arr2 = Arrays.copyOfRange(arr1,2,6);
System.out.println(Arrays.deepToString(arr2));
}
运行结果:[2, 32, 4]
⑤ equals方法 例子如下:类型名可以改变,返回值是boolean类型。true or false
public static void main(String[] args) {
int[] arr1 = {2,2,4};
int[] arr2 = {2,2,4};
//int[] arr;
//arr2 = Arrays.copyOfRange(arr1,2,6);
System.out.println(Arrays.equals(arr1,arr2));
}
运行结果:true
⑥ fill方法 例如 void fill(int[] arr,int value) 的含义就是将value的值赋给arr数组的每一个元素
第一种形式:
public static void main(String[] args) {
int[] arr = new int[3];
Arrays.fill(arr,3);
System.out.println(Arrays.toString(arr));
}
运行结果:[3, 3, 3]
第二种形式:
public static void main(String[] args) {
int[] arr = new int[6];
Arrays.fill(arr,2,5,3); //索引2到5赋值3.包括2不包括5
System.out.println(Arrays.toString(arr));
}
运行结果为:[0, 0, 3, 3, 3, 0]
⑦ hashcode方法 返回类型为int,一个参数例如参数int[] a。
⑧ mismatch方法,返回类型为int,两个数组参数,简单来说是查找两个数组的第一个不匹配的相对索引,如果未找到则返回-1. 有两种方式,同⑥类似。
⑨ sort方法,无返回值,升序。例子 两种形式:Ⅰ:void sort(int[] a); Ⅱ:void sort(int[] a,int fromIndex,int toIndex)
⑩ String toString(int[] a) 返回指定数组内容的字符串表示形式。