Java根据自定义规则排序
日常业务需求开发中可能会遇到如下这种情况:
一个对象集合,需要把这个集合按照对象的某个属性进行排序,排序规则是自己定义的特殊顺序,可以按照下面这种写法来实现,记录下。
PaiXu paiXu1 = new PaiXu("离线中", "1");
PaiXu paiXu2 = new PaiXu("空闲中", "2");
PaiXu paiXu3 = new PaiXu("空闲中","3");
PaiXu paiXu4 = new PaiXu("忙碌中","4");
PaiXu paiXu7 = new PaiXu("空闲中","7");
PaiXu paiXu8 = new PaiXu("离线中","8");
List<PaiXu> list = Arrays.asList(paiXu1, paiXu2, paiXu3, paiXu4, paiXu7, paiXu8);
//根据业务规则 排序
List<String> sortList = Arrays.asList("空闲中","忙碌中","离线中");
list.sort(Comparator.comparing(item -> sortList.indexOf(item.getWorkStatusName())));
list.forEach(System.out::println);
输出结果:
PaiXu(workStatusName=空闲中, workStatus=2)
PaiXu(workStatusName=空闲中, workStatus=3)
PaiXu(workStatusName=空闲中, workStatus=7)
PaiXu(workStatusName=忙碌中, workStatus=4)
PaiXu(workStatusName=离线中, workStatus=1)
PaiXu(workStatusName=离线中, workStatus=8)