一、Arrays
// Arrays 数组工具类,简化数组操作,提高工作效率
// 复制 排序 查找 填充等
// copyOfRange() 复制
// toString() 输出为字符串
// sort() 排序
// binarySearch() 查找
// equals() 判断2个数组是否相等
// fill() 填充数据
// 1-toString 输出为字符串
int[] a1 = new int[]{1,2,3,4,5};
// 比常规遍历方便-即for循环、增强循环
// 详见https://blog.csdn.net/weixin_41117393/article/details/103452830
System.out.println("a1 字符串 " + Arrays.toString(a1));
// 2-copyOfRange() 复制
// 2-1 回顾System.arraycopy()
// 详见https://blog.csdn.net/weixin_41117393/article/details/103453362
// 2-2 copyOfRange(src,int from,int to) // 从from位置到第to位置,to取不到
int[] a2 = new int[]{15,8,6,3,10,12,35,88,64};
int[] a3 = new int[5];
a3 = Arrays.copyOfRange(a2, 1, 5);
System.out.println("a2 字符串 " + Arrays.toString(a2));
System.out.println("a3 复制 " + Arrays.toString(a3));
// 3-sort() 排序
int[] a4 = new int[]{5,38,10,3,29,56,9,20,35};
System.out.println("a4 排序前 " + Arrays.toString(a4));
Arrays.sort(a4);
System.out.println("a4 排序后 " + Arrays.toString(a4));
// 4-binarySearch() 查找
// 需sort排序后再查找
// 返回位置 如果多个相同的数,返回位置不确定
int[] a5 = new int[]{0,7,1,2,3,4,1,5};
int index = 0;
// index = Arrays.binarySearch(a5,1); // 未排序
// System.out.println(index); // -2
Arrays.sort(a5);
System.out.println("a5 排序后 " + Arrays.toString(a5));
index = Arrays.binarySearch(a5,2);
System.out.println("a5 查找2 " + index);
// 5-equals() 判相等
int[] a6 = new int[]{1,2,3};
int[] a7 = new int[]{1,2,3};
System.out.println("a6 a7判相等1 " + Arrays.equals(a6, a7));
a7[0] = 2;
System.out.println("a6 a7判相等2 " + Arrays.equals(a6, a7));
// 6-fill() 填充
int[] a8 = new int[10];
Arrays.fill(a8, 5); // 数组a8全部填充数组5
System.out.println("a8 填充5 " + Arrays.toString(a8));
1-6 运行结果:
二、练习
// 练习
// 1 5*8二维数组,填充随机数,
// 2 借助Arrays类中函数对二维数组进行排序。
int[][] t = new int[5][8];
// 1-随机数组 50-100
System.out.println("随机数组-排序前:");
for(int i=0; i<t.length; i++){
for(int j=0; j<t[i].length; j++){
t[i][j] = (int) (Math.random()*50+50);
}
System.out.println(Arrays.toString(t[i]));
}
// 2-复制到一维数组
int[] c = new int[40];
for(int i=0; i<t.length; i++){
System.arraycopy(t[i], 0, c, i*8, 8);
}
// 3-排序
Arrays.sort(c);
// 4-输出
System.out.println("随机数组-排序后:");
for(int i=0; i<t.length; i++){
System.arraycopy(c, i*8, t[i], 0, 8);
System.out.println(Arrays.toString(t[i]));
}
运行结果:
详见https://blog.csdn.net/weixin_41117393/article/details/103452830
详见https://blog.csdn.net/weixin_41117393/article/details/103453362
我的学习源泉:https://how2j.cn/k/array/array-arrays/516.html?p=114999
Java自学网站:https://how2j.cn?p=114999