正如标题所示,我有一个由整数对组成的列表(int ai和int bi)。我想仅基于int a对此列表进行排序,同时保留成对关系。我想知道是否有一种有效的方法来实现Java的一些标准库。提前谢谢!
编辑:
我的确切实现是ArrayList<ArrayList<Integer>>
,其中每个ArrayList<Integer>
只有两个整数(ai和bi)。抱歉有任何困惑。
答案 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)
为整数对实施http://docs.oracle.com/javase/6/docs/api/java/lang/Comparable.html,并使用http://docs.oracle.com/javase/6/docs/api/java/util/Collections.html
中的sort()答案 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);
}
});