集合按照某属性自定义排序

@Test
public void packInfoSort() throws Exception {
    List<ShipInputInfoModel> inputList = new ArrayList<>();
    ShipInputInfoModel inputModel1 = new ShipInputInfoModel();
    inputModel1.setCtnno("SSBC123456");
    inputModel1.setId(3L);
    inputModel1.setActualPositionName("你说啥");
    ShipInputInfoModel inputModel2 = new ShipInputInfoModel();
    inputModel2.setCtnno("SABC123456");
    inputModel2.setId(2L);
    inputModel2.setActualPositionName("排序的呀");
    ShipInputInfoModel inputModel3 = new ShipInputInfoModel();
    inputModel3.setCtnno("DSBC123456");
    inputModel3.setId(6L);
    inputModel3.setActualPositionName("在这里啊");
    ShipInputInfoModel inputModel4 = new ShipInputInfoModel();
    inputModel4.setCtnno("YBC123456");
    inputModel4.setId(9L);
    inputModel4.setActualPositionName("一杠同");
    ShipInputInfoModel inputModel5 = new ShipInputInfoModel();
    inputModel5.setCtnno("MTZC123456");
    inputModel5.setId(10L);
    inputModel5.setActualPositionName("阿莉雅");

    inputList.add(inputModel1);
    inputList.add(inputModel2);
    inputList.add(inputModel3);
    inputList.add(inputModel4);
    inputList.add(inputModel5);

    log.info("inputList:{}",inputList);

    //Collections.reverse(inputList);

    // 可以根据对象某个属性(中文)首字母按照英文顺序排序
    Collections.sort(inputList, new Comparator<ShipInputInfoModel>(){
        Collator collator = Collator.getInstance(java.util.Locale.CHINA);
        @Override
        public int compare(ShipInputInfoModel ship1, ShipInputInfoModel ship2) {
            return collator.compare(ship1.getActualPositionName(), ship2.getActualPositionName());
        }
    });

    log.info("inputList:{}",inputList);

    // 英文字母排序 或者数字
    /*Collections.sort(inputList, new Comparator<ShipInputInfoModel>(){
        @Override
        public int compare(ShipInputInfoModel ship1, ShipInputInfoModel ship2) {
            // 英文字母
            return ship1.getCtnno().compareTo(ship2.getCtnno());
            // 数字排序
            //return ship1.getId().compareTo(ship2.getId());
        }
    });

    log.info("inputList:{}",inputList);*/


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值