- 注意:我自己在思考时,想到的是用Arrays.copyofRange进行复制到一维数组里,但是,最终的结果一维数组里的个数总是二维数组里的一排的个数,并不是二维数组里的全部数。
- 二维数组的输出for-each循环
for(int[] ints:a){
System.out.println(Arrays.toString(ints);
}
- 找规律非常重要,要思考怎么将一维数组变成二维数组。
//将二维数组进行从小到大的排序,并输出。
import sun.font.FontRunIterator;
import java.util.Arrays;
import java.util.Scanner;
import java.util.concurrent.ForkJoinPool;
public class Main {
public static void main(String[] args) {
int[][] a = new int[5][8];
int[] b = new int[40];
for (int i = 0; i <a.length ; i++) {
for (int j = 0; j < a[i].length; j++) {
a[i][j]=(int)(Math.random()*100);
}
}
for (int i = 0; i <a.length ; i++) {//复制到一维数组里,这里如果用Arrays.copyofRange似乎不太行
System.arraycopy(a[i],0,b,i*8,8);
}
Arrays.sort(b);//排序,一维数组排序
for (int i = 0; i <a.length ; i++) {//将一维数组复制到原数组里
System.arraycopy(b, i*8, a[i], 0, 8);
}
for (int[] ints : a) {//二维数组的输出
System.out.println(Arrays.toString(ints));
}
}
}
结果如下:
[4, 4, 5, 7, 7, 7, 8, 8]
[13, 21, 23, 27, 27, 34, 34, 39]
[44, 47, 49, 49, 49, 50, 53, 56]
[57, 58, 66, 68, 76, 78, 79, 80]
[81, 82, 83, 85, 87, 88, 96, 97]
Process finished with exit code 0