如何在java中将包含元素的一维数组与二维数组的行分开?

如何在java中将包含元素的一维数组与二维数组的行分开?,java,multidimensional-array,split,Java,Multidimensional Array,Split,我想把单独的一维数组作为nxn矩阵的行向量,作为二维数组a[n][n]。如何在Java中做到这一点 我想做的是我有一个二维数组,它的大小是nXn,其中n是在运行时指定的,我想按升序排列所有的行元素,但是我找不到任何可能的方法。因此,我认为我必须分离行元素,并将它们分别存储在另一个数组中。但是如何每次在for循环中创建一个新数组,以便创建的数组存储行元素呢。你能建议吗。或者你可以建议其他方法。我不确定是否完全理解你的问题,但我认为你想要的是让2d数组的每一行都在1d数组中。如果是这种情况,则可以使

我想把单独的一维数组作为nxn矩阵的行向量,作为二维数组a[n][n]。如何在Java中做到这一点


我想做的是我有一个二维数组,它的大小是nXn,其中n是在运行时指定的,我想按升序排列所有的行元素,但是我找不到任何可能的方法。因此,我认为我必须分离行元素,并将它们分别存储在另一个数组中。但是如何每次在for循环中创建一个新数组,以便创建的数组存储行元素呢。你能建议吗。或者你可以建议其他方法。

我不确定是否完全理解你的问题,但我认为你想要的是让2d数组的每一行都在1d数组中。如果是这种情况,则可以使用一个1d数组,其大小=2d数组中的行数。一维数组中的每个条目都包含另一个数组,其大小=二维数组中的列数。但是,如果可能的话,您应该尽可能直接从2d数组中提取数据,这样您就不必表示一个基本上包含相同数据的新数据结构;
int [] ONE_D_ARAAY[]=new int[n*n];
int [][] TWO_D_ARRAY=new int[n][n];
int index=0;
for(int x=0; x<n ;++n)
  for(int y=0; y<n ++y)
     ONE_D_ARRAY[index++]=TWO_D_ARRAY[x][y];
int[]TWO_D_数组=新int[n][n]; int指数=0; 对于(int x=0;x<p>),n×n矩阵已经是n个一维数组,每个数组都包含n个元素。
int[][] matrix = new int[][] {
    new int[] { 1, 2, 3 },
    new int[] { 4, 5, 6 },
    new int[] { 7, 8, 9 }
};
您可以非常轻松地对此类矩阵的每一行进行排序:

public static <T> void sortMaxtrixRows(T[][] mat) { sortMatrixRows(mat, null); }

public static <T> void sortMatrixRows(T[][] mat, Comparator<? super T> comp) {
    for (int i = 0; i < mat.length; i++) {
        Arrays.sort(mat[i], comp);
    }
}
publicstaticvoidsortmaxtrixrows(T[]mat){sortMatrixRows(mat,null);}

公共静态无效SortMatrix行(T[][]mat,Comparator这对我不起作用,因为我只想把行元素分开。我想把所有行元素分开,这样我就可以按升序排列所有行元素。通过执行上面提到的操作,如果之后我应用任何排序算法,那么将按升序排列2d数组的所有元素而不是将行元素分开