JAVA基础-API-Arrays工具类
Arrays
操作数组的工具类
代码实例:
package ArraysDemo;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
//tostring:将数组变成字符串
int[]arr={1,2,3,4,5,6,7,8,9,10};
System.out.println(Arrays.toString(arr));//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
//binarysearch:二分查找法查找元素
System.out.println(Arrays.binarySearch(arr,10));//9
System.out.println(Arrays.binarySearch(arr, 2));//1
System.out.println(Arrays.binarySearch(arr, 20));//-11
//copyOf:拷贝数组
//参数一:老数组
//参数二:新数组的长度
//方法的底层会根据第二个参数来创建新的数组
// 如果新数组的长度是小于老数组的长度,会部分拷贝
// 如果新数组的长度是等于老数组的长度,会完全拷贝
// 如果新数组的长度是大于老数组的长度,会补上默认初始
int[]newArr1 = Arrays.copyOf(arr, 20);
System.out.println(Arrays.toString(newArr1));//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
//copyOfRange:拷贝数组(指定范围)
//细节:包头不包尾,包左不包右
int[]newArr2=Arrays.copyOfRange(arr,0,9);
System.out.println(Arrays.toString(newArr2));//[1, 2, 3, 4, 5, 6, 7, 8, 9]
//fi11:填充数组
Arrays.fill(arr,100);
System.out.println(Arrays.toString(arr));//[100, 100, 100, 100, 100, 100, 100, 100, 100, 100]
//sort:排序。默认情况下,给基本数据类型进行升序排列,底层是用快速排序
int[]arr2={10,2,3,5,7,8,4,9};
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));//[2, 3, 4, 5, 7, 8, 9, 10]
}
}
Arrays.sort()方法默认是升序,如果想要用降序,需要重写该方法
package ArraysDemo;
import java.util.Arrays;
import java.util.Comparator;
public class Test2 {
public static void main(String[] args) {
Integer[]arr={10,2,3,5,7,8,4,9};
//重写sort方法
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
//如果是o1-o2就是升序,如果是o2-o1就是降序
return o2-o1;
}
});
System.out.println(Arrays.toString(arr));//[10, 9, 8, 7, 5, 4, 3, 2]
}
}