Arrays类
Arrays类常用方法
Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和搜索)
1.toString 返回数组的字符串形式
Integer[] integers = {1,20,90};
//遍历数组
//for (int i = 0; i < integers.length; i++) {
// System.out.println(integers[i]);
//}
//直接用Arrays.toString方法,显示数组
System.out.println(Arrays.toString(integers));//[1, 20, 90]
Array.toString(arr)
2.sort排序(自然排序和定制排序)Integer arr[] = {1,-1,7,0,89};
//sort方法的使用
Integer arr[] = {1, -1, 7, 0, 89};
//进行排序
//1.可以直接使用冒泡排序,也可以直接使用Arrays提供的sort方法排序
//2.因为数组是引用类型,使用同sort排序后,会直接影响到实参 arr
//3.sort重载的,也可以通过传入一个接口 comparator 实现定制排序
//4.调用 定制排序 时 ,传入两个参数
//(1)排序的数组 arr (2)实现了Comparator接口的匿名内部类,要求实现 compare方法
//5.先演示效果,再解释
//Arrays.sort(arr); //默认排序方法(从小到大)
Arrays.sort(arr, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
Integer i1 = (Integer) o1;
Integer i2 = (Integer) o2;
return i2-i1;
}
});
System.out.println("===排序后===");
System.out.println(Arrays.toString(arr));
3.binarySearch 通过二分搜索法进行查找,要求必须排好序int index = Arrays.binarySearch(arr,3);
Integer[] arr = {1,2,90,123,567};
//binarySearch 通过二分搜索法进行,要求必须排好
//1.使用 binarySearch 二叉查找
//2.要求该数组是有序的。如果该数组是无序的,不能使用binarySearch
//3.如果数组中不存在该元素,就返回 源码:return -(low + 1); // key not found.
// 返回的是:-(应该存在的位置+1)
int index1 = Arrays.binarySearch(arr,90);//2
int index2 = Arrays.binarySearch(arr,92);//-4
System.out.println("index1=" + index1);
System.out.println("index2=" + index2);
4.copyOf 数组元素的复制
//copyOf 数组元素的复制
//1.从arr数组中,拷贝arr.length个元素到newArr数组中
//2.如果拷贝到长度 > arr.length 就在新数组到后面 增加 null
//3.如果拷贝长度 < 0 就抛出异常
Integer[] newArr = Arrays.copyOf(arr,arr.length);
System.out.println("===拷贝后===");
System.out.println(Arrays.toString(newArr));
5.fill 用指定元素替换数组所有元素
//fill 数组元素的填充
Integer[] num = new Integer[]{9,3,2};
//使用99去填充num数组,可以理解成替换原理
Arrays.fill(num,99);
System.out.println("===num数组填充后");
System.out.println(Arrays.toString(num));//[99, 99, 99]
6.equals 比较两个数组元素内容是否完全一致
//equals 比较两个数组元素内容是否完全一致
Integer[] arr2 = {1,2,90,123,567};
//如果数组元素完全一样,返回true,否则返回false
boolean equals = Arrays.equals(arr,arr2);
System.out.println("equals=" + equals);
7.asList 将一组值,转换成list
//asList 将一组值,转换成list
//1.asList方法会将(2,3,4,5,6,1)数据转成一个List集合
//2.返回的 asList 编译类型 List(接口)
//3.asList 运行类型 java.util.ArrayList,是Array类的
List<Integer> asList = Arrays.asList(2,3,4,5,6,1);
System.out.println("asList=" + asList);