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;
}

最新文章

  1. SSH-keygen参数说明
  2. Qt5 程序启动画面动图效果
  3. MyBatis入门案例 增删改查
  4. R----DT包介绍学习
  5. 13. (转) Android一些布局属性详解
  6. android 学习随笔十二(网络:使用异步HttpClient框架)
  7. 帝国cms数据还原后提示数据库表不存在怎么解决?
  8. Windows10搭建PHP7开发环境
  9. ubuntu 安装sublime并激活
  10. android开发之Notification学习笔记
  11. Nodejs in Visual Studio Code 01.简单介绍Nodejs
  12. cygwin编译SDL1.2
  13. php7 不向后的兼容的变更
  14. 转:触屏中的js事件
  15. .NetCore~C#6的一些新特性
  16. 【Centos7】hostnamectl 设置主机名
  17. 使用 ConfigSource 特性 拆分 Web.config 文件
  18. 直接执行SQL语句的快捷键是什么啊?嘎嘎
  19. 在Centos中安装mysql
  20. solidity高级理论(三):时间单位与view

热门文章

  1. 巧用 -webkit-box-reflect 倒影实现各类动效
  2. HDOJ-2222(AC自动机+求有多少个模板串出现在文本串中)
  3. 泛微OA 多版本存在命令执行
  4. Redis工具收费后新的开源已出现
  5. C# 基础 - 文件对话框
  6. Windows系统添加虚拟串口及CanToolApp功能1的实现
  7. imagemagick 之 Fred&#39;s ImageMagick Scripts 在Ubuntu 下的实践
  8. 设计vue3的请求实体工厂
  9. RabbitMQ 入门 (Go) - 1. 简介和安装
  10. java例题_05 判断分数等级