数组工具类常见方法 常见方法速查表方法作用Arrays.toString(arr)打印一维数组Arrays.deepToString(arr)打印二维数组Arrays.sort(arr)数组排序Arrays.fill(arr, value)填充数组Arrays.equals(a, b)判断两个一维数组是否相同Arrays.copyOf(arr, len)复制数组Arrays.copyOfRange(arr, start, end)复制数组一段Arrays.binarySearch(arr, value)二分查找Arrays.asList(arr)数组转 ListArrays是 Java 提供的数组工具类在importjava.util.Arrays;里面。它主要用来操作数组比如排序、填充、查找、打印、比较、复制。1.Arrays.toString()打印数组普通数组直接输出看不到内容int[]arr{3,1,2};System.out.println(arr);输出类似[I1b6d3586想看数组内容要用System.out.println(Arrays.toString(arr));完整例子importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){int[]arr{3,1,2};System.out.println(Arrays.toString(arr));}}输出[3, 1, 2]2.Arrays.sort()数组排序把数组从小到大排序。importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){int[]arr{5,2,9,1};Arrays.sort(arr);System.out.println(Arrays.toString(arr));}}输出[1, 2, 5, 9]字符串数组也可以排序String[]names{Tom,Alice,Bob};Arrays.sort(names);System.out.println(Arrays.toString(names));输出[Alice, Bob, Tom]3.Arrays.fill()填充数组把数组里的所有元素都改成同一个值。importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){int[]arrnewint[5];Arrays.fill(arr,-1);System.out.println(Arrays.toString(arr));}}输出[-1, -1, -1, -1, -1]你之前的代码Arrays.fill(matchGirl,-1);意思就是把 matchGirl 数组全部初始化成 -14.Arrays.equals()比较两个数组是否一样注意数组不能直接用判断内容是否一样。错误理解arr1arr2这个比较的是两个数组是不是同一个对象。正确写法Arrays.equals(arr1,arr2)例子importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){int[]a{1,2,3};int[]b{1,2,3};int[]c{1,2,4};System.out.println(Arrays.equals(a,b));System.out.println(Arrays.equals(a,c));}}输出true false5.Arrays.copyOf()复制数组可以复制一个新数组。importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){int[]oldArr{1,2,3};int[]newArrArrays.copyOf(oldArr,5);System.out.println(Arrays.toString(newArr));}}输出[1, 2, 3, 0, 0]解释原数组长度是 3 新数组长度是 5 多出来的位置用默认值 0 补齐如果复制得更短int[]newArrArrays.copyOf(oldArr,2);结果是[1, 2]6.Arrays.copyOfRange()复制数组的一段importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){int[]arr{10,20,30,40,50};int[]partArrays.copyOfRange(arr,1,4);System.out.println(Arrays.toString(part));}}输出[20, 30, 40]注意Arrays.copyOfRange(arr,1,4)表示从下标 1 开始到下标 4 之前包含1不包含4。7.Arrays.binarySearch()二分查找查找某个元素在数组中的位置。注意使用前数组必须先排序。importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){int[]arr{30,10,20,50,40};Arrays.sort(arr);intindexArrays.binarySearch(arr,40);System.out.println(Arrays.toString(arr));System.out.println(index);}}输出[10, 20, 30, 40, 50] 3说明40 在排序后的数组下标 3 的位置8.Arrays.asList()数组转 List常用于字符串数组importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){String[]arr{Java,MySQL,Redis};ListStringlistArrays.asList(arr);System.out.println(list);}}输出[Java, MySQL, Redis]注意Arrays.asList()转出来的 List不能直接 add/remove。下面这样会报错list.add(Spring);如果想能添加要这样写ListStringlistnewArrayList(Arrays.asList(arr));list.add(Spring);二维数组打印用deepToString()比如importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){int[][]arr{{1,2,3},{4,5,6}};System.out.println(Arrays.deepToString(arr));}}输出[[1, 2, 3], [4, 5, 6]]普通的Arrays.toString()不适合打印二维数组。最常用的几个你先记住Arrays.toString(arr);// 打印数组Arrays.sort(arr);// 排序Arrays.fill(arr,-1);// 填充Arrays.equals(a,b);// 比较Arrays.copyOf(arr,n);// 复制这几个在刷题里很常见。