java list 字段去重_如何实现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 通过tree set 去重
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 字段去重_如何实现java8 list按照元素的某个字段去重相关推荐
- 查询去重_如何在 1 秒内做到大数据精准去重?
去重计数在企业日常分析中应用广泛,如用户留存.销售统计.广告营销等.海量数据下的去重计数十分消耗资源,动辄几分钟,甚至几小时,Apache Kylin 如何做到秒级的低延迟精确去重呢? 作者:史少锋, ...
- 千万数据去重_如何在 1 秒内做到大数据精准去重?
去重计数在企业日常分析中应用广泛,如用户留存.销售统计.广告营销等.海量数据下的去重计数十分消耗资源,动辄几分钟,甚至几小时,Apache Kylin 如何做到秒级的低延迟精确去重呢? 什么是去重计数 ...
- access如何去重_如何在 1 秒内做到大数据精准去重?
去重计数在企业日常分析中应用广泛,如用户留存.销售统计.广告营销等.海量数据下的去重计数十分消耗资源,动辄几分钟,甚至几小时,Apache Kylin 如何做到秒级的低延迟精确去重呢? 作者:史少锋, ...
- 修改mysql 视图字段类型_记一次mysql视图创建时自定义字段类型不同环境不同的原因...
由于老项目使用的是hibernate,当项目启动时会去检查数据库字段类型等,发现一张视图中某个自定义字段在开发环境中类型为text,但是到了生产环境类型却为mediumtext,导致代码在生产上会有问 ...
- java过滤4字节_乐字节Java8核心特性实战之四:方法引用
Java8 中引入方法引用新特性,用于简化应用对象方法的调用, 方法引用是用来直接访问类或者实例的已经存在的方法或者构造方法. 方法引用提供了一种引用而不执行方法的方式,它需要由兼容的函数式接口构成的 ...
- abap视图字段限制_在 Laravel 控制器中进行表单请求字段验证
在 Web 应用中,用户提交的数据往往是不可预测的,因此一个非常常见的需求是对用户提交的表单请求进行验证,以确保用户输入的是我们所期望的数据格式.很多 Web 框架都对此功能专门提供了工具集,Lara ...
- mysql字段自动计算_《MySQL必知必会》计算字段
<MySQL必知必会>计算字段 1.1 计算字段 字段(field)基本上与列( column)的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常用在计算字段的连接上. 客户 ...
- java字符串下标替换_字符串空格替换成指定元素实例思路讲解java
请实现一个函数,将一个字符串中的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20lucky. 思路:从前向后记录' ...
- python从数据库取数据 显示字段名_如何在python中将SQL数据库中的字段名放入列表中...
以下是我目前掌握的代码:from ConfigParser import * import MySQLdb configuration = ConfigParser() configuration.r ...
最新文章
- 面试官问:ZooKeeper 一致性协议 ZAB 原理
- 反射工具类 java_Java反射工具类
- TSM对Oracle数据库备份脚本
- python中map函数字典映射_python Chainmap函数(19)
- 生成arff文件,csv转为arff
- THINKPHP3.2视频教程
- (2021) 20 [虚拟化] 进程调度
- 【JAVA面试】java面试题整理(4)
- 安卓加密软件_(安卓)微信聊天加密软件
- Babylon-AST初探-代码生成(Create)
- 职场的秘密,你知道多少?
- Android Sqlite 工具类封装
- java中类初始化_java中类和对象的初始化
- DVWA模块使用教程(二)
- 首发速看:智微JMS901双接口U盘成功量产,附量产工具软件+固件+教程分享
- 【转】Guide to Elliptic Curve Cryptography(ECC椭圆曲线算法1)
- python机器学习——十次交叉验证训练的数据准备算法
- 并发编程(进程、线程、协程)
- H无穷滤波(H∞ filtering )
- 供电企业的福音,远程抄表系统无线解决方案,让工程师告别奔波
热门文章
- 使用RequestHandlerRetryAdvice重试Web服务操作
- Spring Data MongoDB中的审核实体
- JavaFX教程–基础
- IO与NIO –中断,超时和缓冲区
- 虚拟化Java应用程序:最佳实践(JavaOne 2011)
- .bash_profile vs .bashrc
- IntelliJ IDEA中打开项目时用 Import Project(导入项目) 和 Open(打开项目) 的区别
- 判断选择语句switch...case
- 人脸特征值能存放在sql server中吗_SQL运行内幕:从执行原理看调优的本质
- 二级java题型及分值_2016年全国计算机二级java语言程序设计考试大纲