【问题标题】:java - 2d array sorting using 3rd columnjava - 使用第三列进行二维数组排序
【发布时间】:2014-03-16 02:21:38
【问题描述】:

我有以下代码。当我尝试编译它时,它给了我以下错误:

线程“main”java.lang.Error 中的异常:未解决的编译问题: Arrays类型中的方法sort(T[], Comparator)不适用于>参数(int[][], new Comparator(){})

在 test.main.main(main.java:12)


import java.io.*;
import java.util.Arrays;
import java.util.Comparator;

public class main {
        public static void main(String[] args) throws IOException {

        int [][] A = {{1,2,3}, {2,3,4}, {3,4,5}};

        Arrays.sort(A, new Comparator<Integer[]>() {
            public int compare(Integer[] int1, Integer[] int2) {
                Integer key1 = int1[2];
                Integer key2 = int2[2];
                return key1.compareTo(key2);
            }
        });


        for(int i=0; i<3; i++) {
            System.out.println(A[i][0] + ", " + A[i][1] + ", " + A[i][2]);
        }

    }
}

我该如何解决这个问题

【问题讨论】:

标签: java sorting multidimensional-array


【解决方案1】:

你可以解决这个问题

Integer[][] A = ...;

而不是

int[][] A = ...;

您可以在这篇文章中获得更多信息:Why can Java Collections not directly store Primitives types?

【讨论】:

    【解决方案2】:

    您无需拨打Arrays.sort(Integer[], Comparator);,直接拨打Arrays.sort(int[]);即可。

    其实Integer已经实现了Comparable,所以你可能不会再定义它,除非你想定义一些不同的排序方式!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 2021-05-03
      • 2018-08-17
      • 1970-01-01
      相关资源
      最近更新 更多