怎么实现将二维数组进行排序
二维数组直接调用Arrays工具类的方法时,编译器会给出"下表越界"的异常,那么如何将二维数组进行排序
思路
二维数组实际上就是由一堆一维数组组成的,所以可以将二维数组分成一个个一维数组先进行排序,然后再赋值给二维数组
代码实现
import java.util.Arrays;
public class HelloWorld {
public static void main(String[] args) {
int[][] arr=new int[5][8];
int[] arrall=new int[40];
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
arr[i][j]=(int) (Math.random()*100);
}
}
System.out.println("原二维数组为:"+Arrays.deepToString(arr));
for(int i=0;i<arr.length;i++){
System.arraycopy(arr[i],0,arrall,i*arr[i].length,arr[i].length);
}
System.out.println("复制到一维数组为:"+Arrays.toString(arrall));
Arrays.sort(arrall);
System.out.println("一维数组排序后:"+Arrays.toString(arrall));
for(int i=0;i<arr.length;i++){
System.arraycopy(arrall,i*arr[i].length,arr[i],0,arr[i].length);
}
System.out.println("原二维数组排序后:"+Arrays.deepToString(arr));
}
}