对包含整数对的列表进行排序

时间:2012-05-04 20:38:17

标签: java sorting

正如标题所示,我有一个由整数对组成的列表(int ai和int bi)。我想仅基于int a对此列表进行排序,同时保留成对关系。我想知道是否有一种有效的方法来实现Java的一些标准库。提前谢谢!

编辑: 我的确切实现是ArrayList<ArrayList<Integer>>,其中每个ArrayList<Integer>只有两个整数(ai和bi)。抱歉有任何困惑。

4 个答案:

答案 0 :(得分:1)

使用Collections sort()Arrays sort()方法,该方法需要Comparator并使用自定义比较器,该比较器仅检查对中的第一个整数。

这样的事情(粗略地,取决于你的确切类型):

Collections.sort(myList, new Comparator<IntegerPair>() {
  @Override public int compare(IntegerPair x, IntegerPair y) {
    return x.first - y.first;
  }
});

由于排序算法稳定(根据Javadocs),您的列表将根据您的描述进行排序。

答案 1 :(得分:0)

答案 2 :(得分:0)

我建议创建一个表示整数对的类。这个类应该实现Comparable。使用sort()对其进行排序。

答案 3 :(得分:0)

使用已经定义的Integer比较可能会更安全一些:

Collections.sort(myList, new Comparator<IntegerPair>() {
    @Override public int compare(IntegerPair x, IntegerPair y) {
        return Integer.compare(x.first, y.first);
    }
});