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<CusPrm> 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<b?-1:1;
//按类型大小排序,再加反转
}).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<b?-1:1;
//按类型大小排序,再加反转
}).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());
});