java list 元素去重_小猿圈Java开发之list按照元素某个字段去重详解
小猿圈Java老师给大家分享一篇关于如何实现Java8中list按照元素的某个字段去重的详细介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,下面我们一起来看一下吧。
list按照元素的某个字段去重
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
private Integer age;
private String name;
}
测试数据
List studentList = Lists.newArrayList();
studentList.add(new Student(28, "river"));
studentList.add(new Student(12, "lucy"));
studentList.add(new Student(33, "frank"));
studentList.add(new Student(33, "lucy"));
java8通过treeset去重
List studentDistinctList = studentList.stream()
.collect(Collectors.collectingAndThen
(Collectors.toCollection(() ->
new TreeSet<>(Comparator.comparing(t -> t.getName()))),
ArrayList::new
)
);
System.out.println(new Gson().toJson(studentDistinctList));
扩展distinct方法去重
List studentDistinct2List = studentList.stream().filter(StreamUtil.distinctByKey(t->t.getName()))
.collect(Collectors.toList());
System.out.println(new Gson().toJson(studentDistinct2List));
工具类
public class StreamUtil {
/**
* https://stackoverflow.com/questions/23699371/java-8-distinct-by-property
* @param keyExtractor
* @param
* @return
*/
public static Predicate distinctByKey(Function super T, ?> keyExtractor) {
Set seen = ConcurrentHashMap.newKeySet();
return t -> seen.add(keyExtractor.apply(t));
}
}
以上就是
小猿圈java
讲师对于list按照元素某个字段去重详解的介绍,相信通过以上介绍你对于Java也是有了一定的了解,学习java是不断看视频看书不断进步的过程java自学交流群:743849624,需要一点点积累才能得到质的飞跃的,想学习Java就到小猿圈去看看吧,里面有最全最新的课程等着你。
java list 元素去重_小猿圈Java开发之list按照元素某个字段去重详解相关推荐
- java request 处理过程_小猿圈Java开发之从代码看spring mvc请求处理过程
原标题:小猿圈Java开发之从代码看spring mvc请求处理过程 Java作为编程界的常青树,有自己生存的独到之处,小猿圈java讲师今天就分享一个关于从代码看spring mvc请求处理过程,通 ...
- java 后台跳出提示_小猿圈Java初学者练习小案例:猜数字游戏
对于Java初学者,如果没有好的引导,可能会觉得自己学什么都不好,学什么都不会,这个时候就要给他们一下小的案例,让他们去实践一下,让他们知道自己学的东西是可以用到的,小猿圈java讲师为你准备了Jav ...
- java gc 有钱人_小猿圈java之GC垃圾回收机制
垃圾回收机制是提高性能的重要机制,所以不管学什么语言也好,垃圾回收机制都是有的,也是很重要的,小猿圈这章详解一下java的GC垃圾回收机制,需要用的或者感兴趣的朋友们,可以跟着小编学习一下. 一.GC ...
- 判断三角形java代码_小猿圈Java循环嵌套语法的使用介绍
Java是一直被程序员使用的程序之一,而且应用也是最广泛的一个,很多应用中都会用得到,小猿圈java讲师就为你介绍一下Java循环嵌套语法的使用介绍,希望对你有所帮助. 嵌套循环是指在一个循环语句的循 ...
- 猜物品游戏java编程_小猿圈Java初学者练习小案例:猜数字游戏
对于Java初学者,如果没有好的引导,可能会觉得自己学什么都不好,学什么都不会,这个时候就要给他们一下小的案例,让他们去实践一下,让他们知道自己学的东西是可以用到的,小猿圈java讲师为你准备了Jav ...
- java while语句打印三角形_小猿圈Java循环嵌套语法的使用介绍
Java是一直被程序员使用的程序之一,而且应用也是最广泛的一个,很多应用中都会用得到,小猿圈java讲师就为你介绍一下Java循环嵌套语法的使用介绍,希望对你有所帮助. 嵌套循环是指在一个循环语句的循 ...
- 小猿圈python之python期末考试测试题(二)_小猿圈Python开发面试题(二)
原标题:小猿圈Python开发面试题(二) 小猿圈Python老师继上一次python面试题一,接着更新python面试题二,同学们测试一做的怎么样呢?有没有把握呢,想要看答案的同学们,可以在小猿圈上 ...
- java五子棋悔棋代码_小猿圈前端编写JS五子棋游戏
前段时间发的飞机大战的游戏很多小伙伴都私聊让再做个游戏,今天小猿圈web前端讲师为大家分享的是JS五子棋的游戏,想玩的小伙伴记得自己运行一下呦. JS五子棋游戏代码: 五子棋 canvas { dis ...
- 小猿圈python之python期末考试测试题(二)_小猿圈Python开发面试题(一)
如果准备去找工作,建议练习一下再去,做充分的准备,去迎接面试!小猿圈加加老师给整理了一套面试题,后续还会有,想要看答案的同学可以给我留言. 一.问答题 1.说一下什么是可变类型什么是不可变类型? 2. ...
最新文章
- firewall添加白名单_firewall的规则设置与命令(白名单设置)
- Linux下的shell脚本实战之用户创建
- 企业的核心竞争力是什么
- PHP获取二维数组中某一列的值集合
- Linux学习 - 文件包处理命令
- 记录部件中GetFieldControlByFieldName(字段值样式设置)用法
- 用c语言简单办法做一个字典_幼儿园手工,用废纸筒做一个简单的小蝴蝶,有教程...
- 服务器采用虚拟化应用漂移,虚拟化技术在数字化医院建设中的应用
- Skywalking-01:Skywalking介绍
- 递归遍历树结构顺序显示并且添加到list集合
- Android基于TCP的局域网聊天通信
- 如何关闭OSX 10.11 SIP (System Integrity Protection)
- 女人活到后半生才会明白:兜里有钱,才有安全感
- terminal中常用的rvm指令
- 2021计算机科学调剂,2021北京科技大学计算机科学与技术专业接收调剂研究生的通知...
- java中的T extends Comparable ? super T
- NWT与HHTH两个公司的对比
- 安装Java反编译工具Luyten(Windows例)
- 原来这样可以优雅地解决小米手机后台弹窗权限问题
- oracle php 教程 pdf,AJAX+PHP+Oracle数据库Web开发 ((美)Lee Barney) 中文PDF扫描版 37.5M
热门文章
- 工厂供电MATLAB仿真,工厂供电虚拟仿真实验设计研究
- oracle老报604和10275,翻出来了 老东西了 , oracle 数据库解析 extent 数据结构解析...
- mysql80压缩版安装_裕-安装MySQL80(压缩版)
- mysql dump锁表_mysqldump 锁表和解锁语句
- java struts2 mvc_struts2的MVC模式
- anyview下载java,下载AnyviewMobile Games Java - 596763 - ebook txt Anyview | mobile9
- microsoft fix it_it狂人【14季全】
- 如何精通java_如何精通java技术
- 3d打印英语文献_DMD 激光熔覆3D打印机型设计在仿真计算中的经验分享
- html与js二级菜单横排,JavaScript实现横向滑出的多级菜单效果