我必须比较一个自定义类的对象,比如说A。
比较是基于A的int成员(例如mem)进行的简单比较。
因此,在比较器实现中,我可以执行以下操作:
(A a1, A a2) -> {return (Integer)a1.getMem().compareTo(a2.getMem());}
或者,我可以自己进行比较:
(A a1, A a2) -> {
if(a1.getMem() > a2.getMem()){
return 1;
}else{
if(a1.getMem() < a2.getMem()) {
return -1;
}else{
return 0
}
}
}
哪种方法更好?
第一种方法的代码行少得多,但是内部compareTo所做的与第二种方法相同。
最佳答案
通常最好不要重新发明轮子。因此,第一种方法更好。
您甚至可以使用Comparator.comparingInt
编写更少的代码:
Comparator.comparingInt(A::getMem)
关于java - 是否使用compareTo,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56096845/