java学习日记20230407-Arrays类
Arrays类
- Arrays里面包含了一系列静态方法,用于管理和操作数组,比如排序和搜索;
- toString返回数组的字符串形式
- sort排序(自然排序和定制排序)
- binarySearch通过二分搜索法进行查找,要求必须排好序
- copyOf数组元素的复制
- fill数组元素的填充
- equals比较两个数组元素内容是否完全一致
- asList将一组值,转化为list
-
public class ArraysMethods { public static void main(String[] args) { Integer[] integers = {1,20,30}; //toString System.out.println(Arrays.toString(integers)); //sort排序 Integer[] integers1 = {1,-1,7,0,89}; Arrays.sort(integers1); //实现了Comparator接口的匿名内部类 //体现了接口编程的概念 //源码分析:sort-binarySort-compare(通过匿名内部类来实现排序的逻辑),动态绑定 Arrays.sort(integers1, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o2-o1; } }); System.out.println(Arrays.toString(integers1)); Integer[] integer3 = {-1,-2,1,0,3}; bubble02(integer3, new Comparator() { @Override public int compare(Object o1, Object o2) { return (int)o1 - (int)o2; } }); //如果数组中不存在,则返回 -(low+1) System.out.println(Arrays.binarySearch(integer3,2)); System.out.println(Arrays.toString(integer3)); //copyof数组元素复制,如果长度增加,则插入null //如果长度小于0,则发生异常 NegativeArraySizeException Integer[] newInteger = Arrays.copyOf(integer3,10); System.out.println(Arrays.toString(newInteger)); //fill数组填充 Integer[] fillInt = new Integer[]{3,4,5}; Arrays.fill(newInteger,2); System.out.println(Arrays.toString(newInteger)); //equals比较数组,true/false Integer[] newAr01 = {1,3,2}; Integer[] newAr02 = Arrays.copyOf(newAr01,newAr01.length); Arrays.sort(newAr01, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return (int)o2 - (int)o1; } }); System.out.println(Arrays.toString(newAr01)); System.out.println(Arrays.toString(newAr02)); System.out.println(Arrays.equals(newAr01,newAr02)); //adList 数组转化为List List<Integer> asList = Arrays.asList(newAr01); System.out.println(asList); System.out.println(asList.getClass()); } //冒泡排序 public static void bubble01(int[] arr){ int temp = 0; for (int i = 0; i < arr.length-1; i++) { for (int j = 0; j < arr.length-i-1; j++) { if(arr[j]>arr[j+1]){ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } //模拟匿名内部类实现排序重写 public static void bubble02(Integer[] arr, Comparator c){ int temp = 0; for (int i = 0; i < arr.length-1; i++) { for (int j = 0; j < arr.length-i-1; j++) { if(c.compare(arr[j],arr[j+1])>0){ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } }

浙公网安备 33010602011771号