在这里我来分享几种列表去重的方法,算是一次整理吧,如有纰漏,请不吝赐教。
1. Stream 的distinct()
方法
distinct()
是Java 8 中 Stream 提供的方法,返回的是由该流中不同元素组成的流。distinct()
使用 hashCode()
和 eqauls()
方法来获取不同的元素。
因此,需要去重的类必须实现 hashCode()
和 equals()
方法。换句话讲,我们可以通过重写定制的 hashCode()
和 equals()
方法来达到某些特殊需求的去重。扩展:Java面试题汇总
distinct()
方法声明如下:
去重前 :[{"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"}]
3. 总结
以上便是我要分享的几种关于列表去重的方法,当然这里没有进行更为详尽的性能分析,希望以后会深入底层再重新分析一下。如有纰漏,还望不吝赐教。
作者:lq木头
juejin.cn/post/6844903842132262926
END
十期推荐
【231期】面试官:Java中 serialVersionUID 的作用是什么?
【232期】面试官:Spring的 IOC 容器比New对象究竟好在哪?
【235期】面试官:Redis的数据是存在内存里吗?谈谈Redis各种数据类型的使用场景?
【237期】面试官:如何发现 Redis 热点 Key ,解决方案有哪些?
【238期】面试官:Redis新版本开始引入多线程,谈谈你的看法?
【239期】面试官:如何使用Redis实现电商系统的库存扣减?
与其在网上拼命找题? 不如马上关注我们~
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/8018.html