【发布时间】:2012-04-09 19:35:43
【问题描述】:
我想对整数对的数组列表进行排序。到目前为止,我已经能够根据第一个元素对它们进行排序,但是我得到了类似 (1,2)、(1,-2) 的东西。我还想根据第二个元素对它们进行排序,以便获得正确的排序数组列表,但我似乎无法使其工作。
第一个元素排序的代码是:
private class FirstElmComparator implements Comparator<Pair> {
public int compare(Pair pr1, Pair pr2) {
return pr1.compareFirstElms(pr2);
}
}
和 compareFirstElms 函数如下:
protected int compareFirstElms (Pair p) {
return (new Integer (this.p1)).compareTo(new Integer (p.p1));
}
我可以考虑使第二个元素比较器如下:
private class SecondElmComparator implements Comparator<Pair> {
public int compare(Pair pr1, Pair pr2) {
return pr1.compareSecondElms(pr2);
}
}
protected int compareSecondElms (Pair p) {
return (new Integer (this.p2)).compareTo(new Integer (p.p2));
}
注意:p1 和 p2 是一对中的第一个和第二个元素。
但我认为它会覆盖第一个元素的排序顺序,还是我弄错了? 谁能帮我解决这个问题。
【问题讨论】:
标签: java integer compare comparator