【JDK8】JDK 8 中Stream流中的去重的方法
2024-09-03 13:58:56
JDK 8 中Stream流中去重的方法
1.简单的去重,可以使用distinct()方法去重,该方法是通过比较equals和hashcode值去去重,
2.复杂的去重,
例如,在一个JavaBean的集合中,去除某个属性重复的对象
@Override
public List<RptDayMonthTargetVO> queryTarget() {
List<RptDayMonthTarget> list = targetService.selectMonthTarget();
//数据去重-根据Bean对象的SupplierId属性去重
List<RptDayMonthTarget> dbList = list.stream().filter(distinctByKey(RptDayMonthTarget::getSupplierId)).collect(Collectors.toList());return voList;
}
private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Map<Object,Boolean> seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
最新文章
- SSH-keygen参数说明
- Qt5 程序启动画面动图效果
- MyBatis入门案例 增删改查
- R----DT包介绍学习
- 13. (转) Android一些布局属性详解
- android 学习随笔十二(网络:使用异步HttpClient框架)
- 帝国cms数据还原后提示数据库表不存在怎么解决?
- Windows10搭建PHP7开发环境
- ubuntu 安装sublime并激活
- android开发之Notification学习笔记
- Nodejs in Visual Studio Code 01.简单介绍Nodejs
- cygwin编译SDL1.2
- php7 不向后的兼容的变更
- 转:触屏中的js事件
- .NetCore~C#6的一些新特性
- 【Centos7】hostnamectl 设置主机名
- 使用 ConfigSource 特性 拆分 Web.config 文件
- 直接执行SQL语句的快捷键是什么啊?嘎嘎
- 在Centos中安装mysql
- solidity高级理论(三):时间单位与view
热门文章
- 巧用 -webkit-box-reflect 倒影实现各类动效
- HDOJ-2222(AC自动机+求有多少个模板串出现在文本串中)
- 泛微OA 多版本存在命令执行
- Redis工具收费后新的开源已出现
- C# 基础 - 文件对话框
- Windows系统添加虚拟串口及CanToolApp功能1的实现
- imagemagick 之 Fred&#39;s ImageMagick Scripts 在Ubuntu 下的实践
- 设计vue3的请求实体工厂
- RabbitMQ 入门 (Go) - 1. 简介和安装
- java例题_05 判断分数等级