java用Comparator.comparing自定义排序规则,根据业务逻辑排序
直接上代码:
public static void main(String[] args) {
PaiXu paiXu1 = new PaiXu("离线中", "1");
PaiXu paiXu2 = new PaiXu("空闲中", "2");
PaiXu paiXu3 = new PaiXu("空闲中","3");
PaiXu paiXu4 = new PaiXu("忙碌中","4");
PaiXu paiXu5 = new PaiXu("","5");
PaiXu paiXu6 = new PaiXu("","6");
PaiXu paiXu7 = new PaiXu("空闲中","7");
PaiXu paiXu8 = new PaiXu("离线中","8");
List list = Arrays.asList(paiXu1, paiXu2, paiXu3, paiXu4, paiXu5, paiXu6, paiXu7, paiXu8);
List resultList = new linkedList<>(); //用来存放新的排好序的数据
//根据业务规则 排序
List sortList = Arrays.asList("空闲中","忙碌中","离线中");
list.stream().sorted(
Comparator.comparing(PaiXu::getWorkStatusName,(x, y)->{
if(x == null && y != null){
return 1;
}else if(x !=null && y == null){
return -1;
}else if(x == null && y == null){
return 0;
}else{
//按照读取的list顺序排序
for(String sort : sortList){
if(sort.equals(x) || sort.equals(y)){
if(x.equals(y)){
return 0;
}else if(sort.equals(x)){
return -1;
}else{
return 1;
}
}
}
return 0;
}
})
).collect(Collectors.toList()).forEach(x->{
PaiXu paiXu = new PaiXu();
BeanUtils.copyProperties(x,paiXu);
resultList.add(paiXu);
});
resultList.forEach(e-> System.out.println(e));
}```
加油奥利给



