gpt4 book ai didi

java - 对整数对列表进行排序java

转载 作者:行者123 更新时间:2023-11-29 09:56:33 25 4
gpt4 key购买 nike

我想对整数对的数组列表进行排序。到目前为止,我已经能够根据第一个元素对它们进行排序,但我得到的是 (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 是一对中的第一个和第二个元素。

但我认为它会覆盖第一个元素的排序顺序,还是我弄错了?谁能帮我解决这个问题。

最佳答案

您创建一个通用比较器来评估 Pair 的两个元素。

public int compare(Pair pr1, Pair pr2) {
int firstResult = pr1.compareFirstElms(pr2);
if (firstResult == 0) { //First comparison returned that both elements are equal
return pr1.compareSecondElms(pr2);
} else {
return firstResult;
}
}

关于java - 对整数对列表进行排序java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9869752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com