use*_*681 -2 java set comparator
我正在尝试使用Comparator如下所示的排序集.
Set seatSet = tc.getTheatreSeat();
List listArr = new ArrayList(seatSet);
Collections.sort(listArr, new Comparator() {
public int compare(Object arg0, Object arg1) {
TheatreSeat r1 = (TheatreSeat) arg0;
TheatreSeat r2 = (TheatreSeat) arg1;
if (r2.getId() < r1.getId()) {
return 1;
}
return 0;
}
});
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我的代码有什么问题请帮忙.
比较函数的返回值应为-1,0或+1,而不仅仅是1或0.
return Integer.compare(r1.getId(), r2.getId());
Run Code Online (Sandbox Code Playgroud)
代替if语句应该做的工作.
使用lambda的Java 8排序将是
listArr.sort(Comparator.comparing(e -> e.getId()));
Run Code Online (Sandbox Code Playgroud)