public static String toString(数组) //把数组拼接成一个字符串
public static int binarySearch(数组,查找的元素) //二分查找法查找元素
public static int[] copyOf(原数组,新数组长度) //拷贝数组
public static int[] copyOfRange(原数组,起始索引,结束索引) //拷贝数组(指定范围)
public static void fill(数组,需要填充的元素) //填充数组
public static void sort(数组) //按照默认方式进行数组排序
public static void sort(数组,排序规则) //按照指定的规则排序
目录
binarySearch
1. 二分查找的前提:数组中的元素必须是升序的;
2. 如果要查找的元素存在,则返回查找到的元素的索引;如果要查找的元素不存在,则返回 (-插入点)-1。
代码示例
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
System.out.println(Arrays.binarySearch(arr, 6)); //5
System.out.println(Arrays.binarySearch(arr, 10));//9
System.out.println(Arrays.binarySearch(arr, 20));//-11
copyOf
参数一:旧数组
参数二:新数组的长度
方法的底层会根据第二个参数来创建新的数组,
如果新数组的长度 < 旧数组的长度,会部分拷贝;
如果新数组的长度 = 旧数组的长度,会完全拷贝;
如果新数组的长度 > 旧数组的长度,会补上默认初始值。
代码示例
public static void main(String[] args) throws ParseException {
int[] arr = {1, 2, 3, 4, 5};
int[] newArr1 = Arrays.copyOf(arr, 3);
System.out.println(Arrays.toString(newArr1));// [1, 2, 3]
int[] newArr2 = Arrays.copyOf(arr, 5);
System.out.println(Arrays.toString(newArr2));// [1, 2, 3, 4, 5]
int[] newArr3 = Arrays.copyOf(arr, 8);
System.out.println(Arrays.toString(newArr3));// [1, 2, 3, 4, 5, 0, 0, 0]
}
copyOfRange
注意:对于数据拷贝的范围包头不包围,包左不包右
代码示例
public static void main(String[] args) throws ParseException {
int[] arr = {1, 2, 3, 4, 5};
int[] newArr1 = Arrays.copyOfRange(arr, 0, 4);
System.out.println(Arrays.toString(newArr1));// [1, 2, 3, 4]
}
sort
public static void main(String[] args) throws ParseException {
Integer[] arr = {5, 3, 4, 2, 1};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));// [1, 2, 3, 4, 5]
Arrays.sort(arr,new Comparator<Integer>(){
@Override
public int compare(Integer o1, Integer o2) {
return o2-o1; //倒序排序
//return o1-o2 正序排序(默认)
}
});
System.out.println(Arrays.toString(arr));// [5, 4, 3, 2, 1]
}