use*_*403 2 java compare compareto
我写了一个比较器,按升序排序,如下所示.哪个运作良好.
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);
}
}
});
Run Code Online (Sandbox Code Playgroud)
这样实施好吗?请帮我?
谢谢!
它的可读性看起来不错,但更有效的方法可能是:
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);
}
Run Code Online (Sandbox Code Playgroud)
甚至:
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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10934 次 |
| 最近记录: |