Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中对二维数组(每行)进行排序 为了解决一个问题,我需要对二维数组的每一行进行排序。_Java_Algorithm - Fatal编程技术网

如何在Java中对二维数组(每行)进行排序 为了解决一个问题,我需要对二维数组的每一行进行排序。

如何在Java中对二维数组(每行)进行排序 为了解决一个问题,我需要对二维数组的每一行进行排序。,java,algorithm,Java,Algorithm,初始数组 35 22 42 28 20 11 35 21 14 33 1 34 35 42 16 22 38 8 29 12 42 25 28 2 25 28 22 11 20 35 1 40 41 43 44 45 排序后: 11 20 22 28 35 42 1 14 21 33 34 35 8 16 22 35 38 42 2 12 25 28 29 42 11 20 22 25 28 35 1 40 41 43 44 45 遵循此文档 所有人都建议使用比较器。

初始数组

35 22 42 28 20 11
35 21 14 33 1  34
35 42 16 22 38  8
29 12 42 25 28  2
25 28 22 11 20 35
1  40 41 43 44 45
排序后:

11 20 22 28 35 42 
 1 14 21 33 34 35
 8 16 22 35 38 42
 2 12 25 28 29 42
11 20 22 25 28 35
 1 40 41 43 44 45
遵循此文档

所有人都建议
使用比较器。

但我觉得它比较了它的两个参数。返回一个负整数、零或正整数,因为第一个参数小于、等于或大于第二个参数。

因此,我的案例(6列)无法真正做到这一点。

任何想法/建议都会有帮助。

35 22 42 28 20 11
35 21 14 33 1 34
35 42 16 22 38 8
29 12 42 25 28 2
25 28 22 11 20 35
1 40 41 43 44 45

1
40
41
43
44
45

25
28
22
11
20
35

29
12
42
25
28
2

35
22
42
28
20
11

35
21
14
33
1
34

35
42
16
22
38
8
接受输入后,这就是我尝试的内容

    Arrays.sort(arr, new Comparator<int[]>() {
        @Override
        public int compare(int[] int1, int[] int2) {
            return Integer.valueOf(int1[0]).compareTo(int2[0]);
        }
    });
    for(c=0;c<6;c++) {
        for(d=0;d<6;d++) {
            System.out.println(arr[c][d]);
        }
        System.out.println();
    }        

二维数组实际上是数组的数组。您希望对每个内部数组进行排序。因此,您只需循环这些内部数组并对它们进行排序:

int[][] outerArray = ...;
for (int[] innerArray : outerArray) {
    Arrays.sort(innerArray);
}

对于您的案例,您不需要实现
比较器
。只需在
2D
数组上迭代水平数组,然后应用
数组。排序

   Integer[][] theArray = 
   {
        { 35, 22, 42, 28, 20, 11 },
        { 35, 21, 14, 33, 1, 34 }
   };

   for (Integer outer[] : theArray) {

       Arrays.sort(outer);

       for (Integer integer : outer) {
           System.out.print(" " + integer);
       }

       System.out.println();
   }

您是否需要在适当的位置执行此操作(作为问题或任务),或者这是您在访问任意数据结构时遇到的实际问题?