JAVA8——多重排序

摘要:
CusPrmpm1=新CusPmm();Prm1.setPrmName(“小红色”);prm1.设置FkCusMtId(3L);CusPrmpm2=新CusPmm();Prm2.setPrmName(“张红”);prm2.setFkCusMtId(5L);CusPrmpm3=新CusPRM();prm3.setPrmName(“bon”);prm3设置FkCusMtId(4L

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());
});

免责声明:文章转载自《JAVA8——多重排序》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何实现跨域cookie共享hibernate必须知道的知识下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

vue3.0打包后页面空白,放置服务器

lintOnSave:true,//配置跨域devServer:{open:true、host:'localhost'、port:3000、https:false,//以上IP地址和端口是我们计算机的本地地址;以下是需要跨域的代理:{//配置跨域名“/api”:{target:”http://106.12.148.51',//这里的背景地址是模拟的;您应该填...

极验验证码破解之selenium

大家好。我是星星在线,我又来了。今天,我给大家带来极性验证码的硒裂解方法。你有点兴奋吗?你们等不及了。让我们直奔主题。首先,随机找到一个特征点,检查元素,看它是否位于div元素,然后查看它后面的位置。距离已确定。以下是移动硒的大量模拟操作。我们只需要确认需要哪些接口。...

Qt中使用定时器(可使用QObject::timerEvent定时执行,QTimer::singleShot可只触发一次)

在Qt中使用定时器有两种方法,一种是使用QObiect类的定时器;一种是使用QTimer类。当定时器触发时,应用程序会发送一个QTimerEvent。与定时器相关的成员函数有:startTimer()、timeEvent()、killTimer()。virtualvoidQObject::timerEvent;虚函数timerEvent()被重载来实现用户的...

移动端媒体查询的一些尺寸参考

device-width是设备实际的宽度,不会随着屏幕的旋转而改变,因此并不适合开发响应式网站。比如iphone5s的屏幕分辨率宽为640,由于retina显示策略,当scale设置为1的时候,对应的media中取到的width为320,当scale设置为0.5的时候,width为640,而device-width始终是320。总结1.device-widt...

libffi

Thisislibffi.info,由libffi.texi生产的bymakeinfo版本5.1。本手册适用于libffi,一个可移植的外国函数接口库。版权所有(C)200820102011redhat,股份有限公司。许可授予复制、分发...