gpt4 book ai didi

java - 在java中实现Comparator的compare方法的最佳方法?

转载 作者:行者123 更新时间:2023-12-02 03:45:56 25 4
gpt4 key购买 nike

我编写了一个比较器,它按升序排序,如下所示。效果很好。

Collections.sort(resultList,new Comparator<MyModelClass>() {
@Override
public int compare(MyModelClass o1, MyModelClass o2) {
Integer id1= o1.getId();
Integer id2= o2.getId();
if(id1 == null && id2 == null) {
return 0;
}else if(id1 != null && id2 == null) {
return -1;
} else if (id1 == null && id2 != null) {
return 1;
} else {
return id1.compareTo(id2);
}
}
});

这样实现好不好?请帮助我?

谢谢!

最佳答案

它看起来可读性很好,但稍微更有效的方法可能是:

public int compare(MyModelClass o1, MyModelClass o2) {
Integer id1= o1.getId();
Integer id2= o2.getId();
if (id1 == null) {
return id2 == null ? 0 : 1;
}
if (id2 == null) {
return -1;
}
return id1.compareTo(id2);
}

甚至:

public int compare(MyModelClass o1, MyModelClass o2) {
Integer id1= o1.getId();
Integer id2= o2.getId();
if (id1 == null) {
return id2 == null ? 0 : 1;
}

return id2 == null ? -1 : id1.compareTo(id2);
}

关于java - 在java中实现Comparator的compare方法的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8757088/

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