本人为小新一枚,在学Java基础,每天练习一下,会将每日所学发上来
大家有更好的方法欢迎留言告诉我,感激不尽
package exam_class1;
import java.util.Arrays;
import java.util.Random;
public class Test_8 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 首先定义一个5X8的二维数组,然后使用随机数填充满。
* 借助Arrays的方法对二维数组进行排序。
* 参考思路:
* 先把二维数组使用System.arraycopy进行数组复制到一个一维数组
* 然后使用sort进行排序
* 最后再复制回到二维数组。
*/
int[][] arr = new int[5][8];
createArr(arr);
printArr(arr);
int[] temp = copyArr(arr);
Arrays.sort(temp);
System.out.println("排序后的二维数组为:");
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = temp[i*8+j];
}
}
printArr(arr);
}
private static int[] copyArr(int[][] arr) {
// TODO Auto-generated method stub
int[] temp = new int[40];
for (int i = 0; i < arr.length; i++) {
System.arraycopy(arr[i], 0, temp, i*8, 8);
}
return temp;
}
private static void printArr(int[][] arr) {
// TODO Auto-generated method stub
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println(""); //每输完一行就换行
}
}
private static void createArr(int[][] arr) {
// TODO Auto-generated method stub
Random r =new Random();
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = r.nextInt(100);
}
}
}
}