gpt4 book ai didi

java - 如何在 3 个条件后对列表进行排序?

转载 作者:行者123 更新时间:2023-12-01 18:36:06 25 4
gpt4 key购买 nike

我必须按照 3 个条件对列表进行排序。我不知道该怎么做。

标准是:

  1. 如果该对象位于另一个列表中,则该对象位于不在另一个列表中的对象之前(最重要)

  2. 我有一个包含可能性的列表,如果该对象的可能性高于列表中它之前的其他对象对象

  3. 如果 int 值低于它之前的其他对象(不太重要)

我只知道compareTo方法,但是我可以使用compareTo方法对3个条件后的列表进行排序吗?

谢谢

编辑1:

compareTo(Object object) {
if(list.contains(object) && list.contains(this) ) {
return this.compareToSecond(object);}
else if( list.contains(object) && !list.contains(this)) {
return -1;}
else{ return 1;}}

compareToSecond(Object object) {
if(this.liklihood > object.liklihood) {
return 1;}
else if(this.liklihood < object.liklihood) {
return -1;}
else {
return 0;
}}

这样可以吗?

最佳答案

编辑:我已在示例比较器中实现了您的标准

是的,您可以按照您想要的条件对列表进行排序。您只需实现接口(interface)Comparable 或特定的Comparator。示例代码:

Collections.sort(myList, new Comparator<YourClass>() {
public int compare(YourClass yc1, YourClass yc2) {
// criteria 1
if (anotherList.contains(yc1) && !anotherList.contains(yc2)) {
return 1;
}
// criteria 2 and 3(not 100% clear to me)
return yc1.getLikelihood() - yc2.getLikelihood();
}
);

关于java - 如何在 3 个条件后对列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21952234/

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