java8 stream排序及自定义比较器的方法是什么


这篇免费云主机域名文章主要讲解了“java8stream排序及自定义比较器的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java8stream排序及自定义比较器的方法是什么”吧!使用java 8 stream 排序 LIst 以及自定义对象比较器主要比较的是时间,但是时间为最近时间,java中compareto方法比较的ACSII码所以2020和2021肯定是0在前面,但是我们需要的是最近的日期在前面,所以我们对返回的结果做出来取反,正常情况 对象1的edittime和对象2的time比较的是 如果对象1的time小于对象2的time就会返回 1 ,所有我们会发现2020在前面,我们只需要取反,因为 compareto 的结果只有三种 一种是1 升序,-1降序, 0是相等的意思( String类实现了Comparable接口。CompareTo方法相等返回0,升序返回1,降序返回-1),这里可以理解为什么取反吗?因为取反之后2021-09-06的就可以在前面啦。就可以按照最近时间的顺序进行排序啦。我们在处理数据的时候经常会需要进行排序后再返回给前端调用,比如按照时间升序排序,前端展示数据就是按时间先后进行排序。这里可以运用stream的sorted()方法来进行自定义的排序这里举例数据是一个list集合,Listlist,Data实体类中有许多属性,其中有时间字段,month 月份,那我们用stream().sorted()方法排序时,因为元素是类引用类型,需要自定义一个比较器Comparator,按month月份进行升序排序。代码如下:注意:这里比较器里面参数用了Lambda 表达式,new Integer(o.getMonth()) ,这种封装成Integer类型的是因为我们设计的Data实体类中的month属性是String类型,并非Integer,转换成Integer是为了后续做月份遍历判断,如果属性是Integer Month,则可以比较器中可以直接定义类的方法引用如下:感谢各位的阅读,以上就是“java8stream排序及自定义比较器的方法是什么”的内容了,经过本文的学习后,相信大家对java8stream排序及自定义比较器的方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: php如何将静态方法实例化

这篇“php如何将静态方法实例化”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获免费云主机域名,下面我们一起来看看这篇“php如何将静态方法实例化”文章吧。 在PHP中,静…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/13 10:22
下一篇 07/13 10:22

相关推荐