// 方法1 自定义排序的规则 step1
@AllArgsConstructor
@Getter
public enum EastTradeTypeEnum {
BBC(1, "BBC", "备货"),
BC(2, "BC", "直邮"),
CC(3, "CC", "快件"),
PICKUP(4, "代取件", "代取件"),
EXPARCEL(5, "出口小包", "出口小包"),
OTHER(100, "OTHER", "OTHER");
private int index;
private String code;
private String message;
}
// 方法1 自定义排序的规则 step2,使用枚举中的index排序
Collections.sort(orderList, (o1, o2) -> {
EastTradeTypeEnum o1TradeType = Optional.ofNullable(EnumUtils.getInstance(o1.getTitle(), EastTradeTypeEnum.class)).orElse(EastTradeTypeEnum.OTHER);
EastTradeTypeEnum o2TradeType = Optional.ofNullable(EnumUtils.getInstance(o2.getTitle(), EastTradeTypeEnum.class)).orElse(EastTradeTypeEnum.OTHER);
return o1TradeType.getIndex() - o2TradeType.getIndex();
});
// 方法2 根据订单数量进行排序
Collections.sort(orderList, Comparator.comparing(Order::getCount));