// 方法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));