Arrays类常见方法
Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和搜索)
- toString 返回数组的字符串形式 Arrays.toString(arr)
java
public class ArraysMethod01 {
public static void main(String[] args) {
Integer[] integers = {1,20,90};
//直接使用Arrays.toString方法,显示数组
System.out.println(Arrays.toString(integers));
}
}
结果
- sort 排序(自然排序和定制排序)
1,自然排序
java
public class ArraysMethod01 {
public static void main(String[] args) {
Integer[] integers = {1,20,90,2};
//自然排序
Arrays.sort(integers);// {1,2,20,90}
//直接使用Arrays.toString方法,显示数组
System.out.println(Arrays.toString(integers));// {1,2,20,90}
}
}
结果
2,定制排序
java
public class ArraysMethod01 {
public static void main(String[] args) {
Integer[] integers = {1,20,90,2};
//定制排序
Arrays.sort(integers, new Comparator<>() {
@Override
public int compare(Integer o1, Integer o2) {
Integer i1 = (Integer) o1;
Integer i2 = (Integer) o2;
return i1 - i2;//从小到大
}
});
System.out.println(Arrays.toString(integers));
}
}
结果
3,冒泡+定制排序
java
public class ArraysMethod02 {
public static void main(String[] args) {
int[] arr = {1, -1, 8, 0, 20};
bubble01(arr, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
int i1 = (Integer) o1;
int i2 = (Integer) o2;
return i1 - i2;// return i2 - i1;
}
});
System.out.println(Arrays.toString(arr));
}
//冒泡排序
public static void bubble01(int[] arr, Comparator c) {
int temp = 0;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
// 从小到大
if (c.compare(arr[j],arr[j+1])>0) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
}
结果
- binarySearch通过二分搜索法进行查找元素位置
1,要求必须排好序
2,int index = Arrays.binarySearch(数组名,元素);
3,如果数组中不存在该元素,就返回return-(low+1)
java
public class ArraysMethod03 {
public static void main(String[] args) {
int[] arr = {-1, 0, 8, 20};
int index = Arrays.binarySearch(arr,0);
System.out.println(index);//1
}
}
结果
- copeOf :数组元素的复制
Integer [] newArr = Arrays.copyOf(arr, arr.length);
1,从arr数组中,拷贝arr.length个元素到newArr中
2,如果拷贝的长度>arr.length 就在新数组后面增加null
3,如果拷贝长度<0,就抛出异常NegativeArraySizeException
java
public class ArraysMethod03 {
public static void main(String[] args) {
Integer[] arr = {1, -1, 8, 0, 20};
Integer [] newArr = Arrays.copyOf(arr, arr.length);
System.out.println(Arrays.toString(newArr));
}
}
结果
- fill:数组元素的填充
java
public class ArraysMethod03 {
public static void main(String[] args) {
Integer[] arr = {1, -1, 8, 0, 20};
//将所有元素替换成11
Arrays.fill(arr,11);
System.out.println(Arrays.toString(arr));
}
}
结果
- equals :比较两个数组元素是否完全一致
java
public class ArraysMethod03 {
public static void main(String[] args) {
Integer[] arr = {1, -1, 8, 0, 20};
Integer[] arr1 = {1, -1, 8, 0, 20};
//判断内容是否一致 一致T 不一致F
boolean equals = Arrays.equals(arr, arr1);
System.out.println("equals="+equals);//T
}
}
结果
- asList :将一组值,转换成list集合
java
public class ArraysMethod03 {
public static void main(String[] args) {
List list = Arrays.asList(1, 2, 3, 4);
System.out.println("list="+list);
System.out.println("list的运行类型"+list.getClass());
}
}
结果