Java排序1始终位于顶部
我有以下课程:Java排序1始终位于顶部,java,sorting,Java,Sorting,我有以下课程: public class Rating{ private int userId; private int value; //getters and setters } 我希望每次userId==1000位于顶部和底部时,所有评级都按降序排列 我尝试了以下方法,但似乎不起作用: list.sort((o1, o2) -> { if(o2.getUserId() == 1000){
public class Rating{
private int userId;
private int value;
//getters and setters
}
我希望每次userId==1000位于顶部和底部时,所有评级都按降序排列
我尝试了以下方法,但似乎不起作用:
list.sort((o1, o2) -> {
if(o2.getUserId() == 1000){
return 1;
}
return Integer.compare(o2.getValue(), o1.getValue());
});
谢谢您可以尝试以下过程:
list.sort((o1, o2) -> {
if (o1.getUserId() == o2.getUserId()) {
return Integer.compare(o2.getValue(), o1.getValue());
} else if(o1.getUserId() == 1000) {
return -1;
} else if (o2.getUserId() == 1000) {
return 1;
}
return Integer.compare(o2.getValue(), o1.getValue());
});
list.sort((o1, o2) -> {
if (o1.getUserId() < 1000) {
return -1;
}
else if(o1.getUserId() == 1000) {
return 0;
}
else if (o1.getUserId() > 1000) {
return 1;
}
else if (o2.getUserId() < 1000) {
return -1;
}
else if(o2.getUserId() == 1000) {
return 0;
}
else if (o2.getUserId() > 1000) {
return 1;
}
return Integer.compare(o2.getValue(), o1.getValue());
});
list.sort((o1,o2)->{
if(o1.getUserId()<1000){
返回-1;
}
else if(o1.getUserId()==1000){
返回0;
}
else if(o1.getUserId()>1000){
返回1;
}
else if(o2.getUserId()<1000){
返回-1;
}
else if(o2.getUserId()==1000){
返回0;
}
else if(o2.getUserId()>1000){
返回1;
}
返回整数.compare(o2.getValue(),o1.getValue());
});
如果o1.getUserId()==1000)
?返回一个负整数、零或正整数,因为第一个参数小于、等于或大于第二个参数。
,除此之外,您忽略o1
只需检查o2
是否具有id==1000
和顺序o1
是否大于o2