我必须输入一些整数对。在对它们进行排序后,我就可以对它进行一些算术运算。
我使用TreeMap
因为它允许排序,但是当我有重复键时它会失败。
那么,我应该在我的程序中使用什么样的集合/方法?请建议。
TreeMap<Integer, Integer> h = new TreeMap<Integer, Integer>(Collections.reverseOrder());
for(int i=0; i<n; i++){
String ll[] = br.readLine().split(" ");
h.put(Integer.parseInt(ll[0]), Integer.parseInt(ll[1]));
}
答案 0 :(得分:1)
您可以定义自己的对类,而不是使用TreeMap
,将对象放在ArrayList
中,并根据键对元素进行排序。
class Pair{
final int first;
final int second;
.... constructor, getters
}
然后使用Collections.sort
Collections.sort(pairs, Pair::getFirst);
答案 1 :(得分:0)
为什么不实施自己的课程?
如
class Pair implements Comparable {
int a, b;
// Implement operations you want, compareTo() method
}
您可以在ArrayList<Pair>
中存储这些Pair对象,并使用Collections.sort()
方法对所需的数据进行排序。