private List<PwInboundOrder> sortByStatus(List<PwInboundOrder> orders) {
Collections.sort(orders, new Comparator<PwInboundOrder>() {
@Override
public int compare(PwInboundOrder o1, PwInboundOrder o2) {
return getOrderStatusIndex(o1.getState()) - getOrderStatusIndex(o2.getState());
}
private int getOrderStatusIndex(int status) {
switch (status) {
case 6: // 人员验证
return 0;
case 1: // 入库中
return 1;
case 7: // 异常
return 2;
case 3: // 已验证-待绑定
return 3;
case 2: // 已验证
return 4;
case 4: // 已交接-待绑定
return 5;
case 0: // 待入库
return 6;
case 5: // 已入库
return 7;
default:
return 8; // 其他情况
}
}
});
return orders;
}
在比较两个对象时,Comparator
接口的 compare
方法需要返回一个整数来确定排序顺序。通常,这个整数可以是负数、零或正数,这分别表示:
- 负数:第一个对象(o1)应该排在第二个对象(o2)之前。
- 零:两个对象的顺序相同。
- 正数:第一个对象(o1)应该排在第二个对象(o2)之后。