Java8怎么利用Stream实现列表去重


这篇文章主要介绍“Java8怎么利用Stream实现列表去重”,在日常操作中,相信很多人在Java8怎么利用Stream实现列表去重问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java8怎么利用Stream实现列表去重”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!distinct()是Java 8 中 Stream 提供的方法,返回的是由该流中不同元素组成的流。distinct()使用 hashCode() 和 eqauls() 方法来获取不同的元素。因此,需要去重的类必须实现 hashCode() 和 equals() 方法。换句话讲,我们可以通过重写定制的 hashCode() 和 equals() 方法来达到某些特殊需求的去重。distinct() 方法声明如下:因为 String 类已经覆写了 equals() 和 hashCod免费云主机域名e() 方法,所以可以去重成功。结果如下:去重前:AABBC
去重后:ABC注:代码中我们使用了 Lombok 插件的 @Data注解,可自动覆写 equals() 以及 hashCode() 方法。结果如下:去重前:[{“stuNo”:”001″,”name”:”Tom”},{“stuNo”:”002″,”name”:”Mike”},{“stuNo”:”001″,”name”:”Tom”}]
去重后:[{“stuNo”:”001″,”name”:”Tom”},{“stuNo”:”002″,”name”:”Mike”}]结果如下:去重前 :[{“stuNo”:”001″,”name”:”Tom”},{“stuNo”:”001″,”name”:”Tom”},{“stuNo”:”003″,”name”:”Tom”}]
distinct去重后:[{“stuNo”:”001″,”name”:”Tom”},{“stuNo”:”003″,”name”:”Tom”}]
根据名字去重后 :[{“stuNo”:”001″,”name”:”Tom”}]我们首先创建一个方法作为 Stream.filter() 的参数,其返回类型为 Predicate,原理就是判断一个元素能否加入到 Set 中去,代码如下:使用如下:结果如下:去重前 :[{“stuNo”:”001″,”name”:”Tom”},{“stuNo”:”001″,”name”:”Tom”},{“stuNo”:”003″,”name”:”Tom”}]
distinct去重后:[{“stuNo”:”001″,”name”:”Tom”},{“stuNo”:”003″,”name”:”Tom”}]
根据名字去重后 :[{“stuNo”:”001″,”name”:”Tom”}]到此,关于“Java8怎么利用Stream实现列表去重”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注百云主机网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: Vue组件怎么设置Props

这篇文章主要介绍“Vue组件怎么设置Props”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue组件怎么设置Props”文章能帮助大家解决问题。在 Vue 中构建组件通常需要定义一些属性,以使组件可以更好复用,在这种…

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

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 04/18 17:34
下一篇 04/18 17:34

相关推荐