Arrays类常用的方法
1toString:直接显示数组
2.sort: 数组排序(默认排序和定制排序)
3.binarySearch: 通过二分搜素法进行查询(返回的是数组数下标)
(1).要求该数组是有序的,如果该数组无序的,则不能使用binarySearch
(2).如果数组中不存在该元素,就返回return -(low+1),离它最近的值后边下标+1。
4.copyOf: 数组元素复制
(1).从arr数组中,拷贝arr.length个元素到newArr数组中
(2).如果拷贝长度>arr.length 就在新数组后面 增加null
(3).如果拷贝长度<0 就抛出异常NegativeArraySizeException
5.ill: 数组元素的填充
6.equals: 比较两组元素内容是否完全一致
7.asList 将一组值,转换成List集合
ToString 、sort 例题如下:
public class ArraysMethod01 {
public static void main(String[] args) {
Integer [] integers={1,87,22};
//1.Arrays.toString()直接显示数组
System.out.println(Arrays.toString(integers));
//2.Arrays.sort() 数组默认排序和定制排序
/*
1.因为数组是引用类型,所以通过sort排序后,会直接影响到实参arr
2.sort重载的,也可以传入一个接口Comparator实现定制排序
3.调用定制排序时,传入两个参数
(1).排序的数组 arr
(2).实现了Comparator接口的匿名内部类,要求实现compare方法
*/
//1.默认排序Arrays.sort(arr)
Integer [] arr={1,99,87,100};
// Arrays.sort(arr);
//2.定制排序
Arrays.sort(arr, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
Integer i1=(Integer) o1;
Integer i2=(Integer) o2;
return i1-i2; //正序 ;倒序:i2-i1
}
});
System.out.println("===排序后===");
System.out.println(Arrays.toString(arr));
}
}
远行结果如下:
[1, 87, 22]
===排序后===
[1, 87, 99, 100]
binarySearch、copyOf、ill、equals、asList例题如下:
public class ArraysMethod02 {
public static void main(String[] args) {
Integer [] arr={77,1,4,80,99};
/*
3.binarySearch 通过二分搜素法进行查找
要求:
1.要求该数组是有序的,如果该数组无序的,则不能使用binarySearch
2.如果数组中不存在该元素,就返回return -(low+1); 离它最近的值后边下标+1
*/
int index=Arrays.binarySearch(arr,99);
System.out.println("index="+index);
/*
4.copyOf 数组元素复制
1.从arr数组中,拷贝arr.length个元素到newArr数组中
2.如果拷贝长度>arr.length 就在新数组后面 增加null
3.如果拷贝长度<0 就抛出异常NegativeArraySizeException
*/
Integer [] newArr=Arrays.copyOf(arr,6);
System.out.println("执行拷贝完毕");
System.out.println(Arrays.toString(newArr));
Integer[] num=new Integer[]{1,2,4};
//5.ill 数组元素的填充
/*
使用99去填充 num数组,可以理解成替换原理
*/
Arrays.fill(num,99);
System.out.println("====数组填充后===");
System.out.println(Arrays.toString(num));
//6.equals 比较两组元素内容是否完全一致,一样则返回true.否则返回false
Integer [] arr2={12,11,77};
boolean equals=Arrays.equals(num,arr2);
System.out.println("equals="+equals);
//7.asList 将一组值,转换成List
/*
1.asList方法,会将(1,77,22,11)数据转成一个List集合
2.返回asList 编译类型 List(接口)
3.asList 运行类型 java.util.Arrays$ArrayList
是Arrays类的静态内部类 private static class ArraysList<E> extends AbstractList<E> implements RandomAcess,java.io.Serializable
*/
List asList=Arrays.asList(1,77,22,11);
System.out.println("asList="+asList);
System.out.println("asList的远行类型"+asList.getClass());
}
}
运行结果如下:
index=4
执行拷贝完毕
[77, 1, 4, 80, 99, null]
====数组填充后===
[99, 99, 99]
equals=false
asList=[1, 77, 22, 11]
asList的远行类型class java.util.Arrays$ArrayList