打印数组[数组转字符串]
- 一维数组toString
int[] arr = new int[]{1, 2, 3, 4};
System.out.println(Arrays.toString(arr)) ; //[1, 2, 3, 4]
- 二维数组deepToString
int[][] arr = new int[][]{{1, 3}, {2 , 4}};
System.out.println(Arrays.toString(arr)) ; //[[I@1540e19d, [I@677327b6]
System.out.println(Arrays.deepToString(arr)); //[[1, 3], [2, 4]]
判断两个数组是否相等
int[] array = new int[]{1, 2, 3};
int[] array2 = new int[]{1, 2, 3};
System.out.out.println(Arrays.equals(array, array2)); //true
int[][] deepArray1 = new int[][]{{1, 3},{2, 4}};
int[][] deepArray2 = new int[][]{{1, 3},{2, 4}};
System.out.println(Arrays.equals(deepArray1, deepArray2)); //false
System.out.println(Arrays.deepEquals(deepArray1, deepArray2)); //true
deepEquals用于判定两个指定数组彼此是否深层相等,此方法适用于任意深度的嵌套数组。
equals用于判定两个数组是否相等,如果两个数组以相同顺序包含相同元素,则返回true。
如果两个数组使用equals返回true,则使用deepEquals必定也返回true,也就是说在比较的两个数组均为一维数组的前提下,equals和deepEquals的比较结果没有差别。
数组复制
int[] array = new int[]{3, 10, 4, 0, 2};
int[] arrayCopy = Arrays.copyOf(array, 3);
System.out.println(Arrays.toString(arrayCopy)); //[3, 10, 4]
arrayCopy = Arrays.copyOf(array, 7);
System.out.println(Arrays.toString(arrayCopy)); //[3, 10, 4, 0, 2, 0, 0], 多出的长度补0
arrayCopy = Arrays.copyOfRange(array, 1, 4);
System.out.println(Arrays.toString(arrayCopy)); //[10, 4, 0]
填充数组
int[] arr = new int[4];
Arrays.fill(arr, 10); // 使用10替换原来全部的数据
System.out.println(Arrays.toString(arr)) ; //[10, 10, 10, 10]
Arrays.fill(arr, 1, 3, 33);// 部分填充:使用33填充起始索引1, 结束索引3 之间的数据
System.out.println(Arrays.toString(arr)) ; //[10, 33, 33, 10]
排序
int[] array = new int[]{3, 10, 4, 0, 2};
Arrays.sort(array);
System.out.println(Arrays.toString(array)); //[0, 2, 3, 4, 10]
array = new int[]{3, 10, 4, 0, 2};
Arrays.parallelSort(array); //和sort相比是这个是并行的
System.out.println(Arrays.toString(array)); //[0, 2, 3, 4, 10]
array = new int[]{3, 10, 4, 0, 2};
Arrays.sort(array, 0, 4); //部分排序
System.out.println(Arrays.toString(array)); //[0, 3, 4, 10, 2]