java分段排序 排重_JAVA8——多重排序

CusPrm prm1 = new CusPrm();

prm1.setPrmName("小红");

prm1.setFkCusMtId(3L);

CusPrm prm2 = new CusPrm();

prm2.setPrmName("张红");

prm2.setFkCusMtId(5L);

CusPrm prm3 = new CusPrm();

prm3.setPrmName("bon");

prm3.setFkCusMtId(4L);

CusPrm prm4 = new CusPrm();

prm4.setPrmName("张红");

prm4.setFkCusMtId(3L);

CusPrm prm5 = new CusPrm();

prm5.setPrmName("小非");

prm5.setFkCusMtId(3L);

List list = new ArrayList<>();

list.add(prm1);

list.add(prm2);

list.add(prm3);

list.add(prm4);

list.add(prm5);

System.out.println(JSON.toJSONString(list));

//方式一:

list.sort(Comparator.comparing(CusPrm::getPrmName, (a,b) ->{

//第一顺序:按字段拼音

return Collator.getInstance(Locale.CHINESE).compare(a, b);

}).thenComparing(CusPrm::getFkCusMtId, (a, b) ->{

//第二顺序:按数字大小

return a

//按类型大小排序,再加反转

}).thenComparingLong(CusPrm::getFkCusMtId).reversed()

);

//方式二:

Collections.sort(list, Comparator.comparing(CusPrm::getPrmName, (a,b) ->{

//第一顺序:按字段拼音

return Collator.getInstance(Locale.CHINESE).compare(a, b);

}).thenComparing(CusPrm::getFkCusMtId, (a, b) ->{

//第二顺序:按数字大小

return a

//按类型大小排序,再加反转

}).thenComparingLong(CusPrm::getFkCusMtId).reversed()

);

System.out.println(JSON.toJSONString(list));

//list.sort(String.CASE_INSENSITIVE_ORDER); //忽略大小写对list按首字母对字符串进行排序

//list.sort(Comparator.naturalOrder());//对list按首字母对字符串进行排序,对大小写敏感

//方式三:

list.sort((a, b) ->{

return Collator.getInstance(Locale.CHINESE).compare(a.getPrmName(), b.getPrmName());

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值