stream筛选出集合中对象属性重复值
stream筛选出集合中对象属性重复值
字符串集合筛选
List<String> strings = Arrays.asList("a", "bb", "cc", "aa", "bb", "dd", "cc");List<String> result = new ArrayList<>();Map<String, Long> collect = strings.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));collect.forEach((k,v)->{if(v>1)result.add(k);});System.out.println(result.toString());
另一种写法,无需创建收集结果的List集合
List<String> strings = Arrays.asList("a", "bb", "cc", "aa", "bb", "dd", "cc");Map<String, Long> collect = strings.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));List<String> result = collect.entrySet().stream().filter(e -> e.getValue() > 1).map(Map.Entry::getKey).collect(Collectors.toList());System.out.println(result.toString());
结果:
[cc, bb]
对象集合筛选
对象:
public class User {private String userName;private String password;private Integer age;public User(String userName, String password, Integer age) {this.userName = userName;this.password = password;this.age = age;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}
}
对userName属性筛选:
List<User> users = new ArrayList<>();users.add(new User("xpf1","1238",18));users.add(new User("xpf2","1234",18));users.add(new User("xpf3","1235",18));users.add(new User("xpf","1236",18));users.add(new User("xpf","1237",18));Map<String, Long> collect = users.stream().map(User::getUserName).collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));List<String> result = new ArrayList<>();collect.forEach((k,v)->{if(v>1)result.add(k);});System.out.println(result.toString());
结果:
[xpf]
stream筛选出集合中对象属性重复值相关推荐
- ArrayList去除集合中字符串的重复值
/* * 需求:ArrayList去除集合中字符串的重复值 * * 分析: * 1.创建一个集合对象 * 2.添加多个字符串元素 * 3.创建一个新的集合 * 4.拿旧集合中的元素到新集合中去找 * ...
- 通过Stream流找出集合中对象中某个属性重复的值.
在日常的开发中,经常会碰到对数据库查出来的数据还要进行二次的业务逻辑处理的情况,有时候需要对一个对象集合中的重复的元素进行剔除. 下面是一个demo. 可以找出对象List中,某个属性重复的值. pu ...
- execl筛选去重_Excel中如何去除重复值,保留唯一值
有些Excel表格使用时间长了,就出现了一些重复项,有整行内容重复的,也有部分内容重复的,就像下图左边的表格,有三个"张三"和两个"王五",怎样变成右边那个没有 ...
- java合并后求和_Java8使用stream实现list中对象属性的合并(去重并求和)
前言 需要对一个list中的对象进行唯一值属性去重,属性求和,对象假设为billsnums,有id.nums.sums三个属性,其中id表示唯一值,需要nums与sums进行求和,并最后保持一份. 例 ...
- java同名变量在list中添加两次_去除集合中自定义对象的重复值(对象的成员变量值都相同)...
package cn.itcast_04; import java.util.ArrayList; import java.util.Iterator; /* * 需求:去除集合中自定义对象的重复值( ...
- java jdk8 使用stream实现两个list集合合并成一个list集合(对象属性的合并)
java使用stream实现list中对象属性的合并: 根据两个List中的某个相同字段合并成一条List,包含两个List中的字段 目录 一.前言 二.示例 示例1:java8 合并两个 list& ...
- 找出集合中重复元素和不重复元素
//找出集合中重复和不重复元素List<String> list6 = new ArrayList<>();Collections.addAll(list6, "a& ...
- some数组遍历的用法/得到两组数组对象中某属性相同or不同的对象/对比两组数组中, 对象的某个值重复
很早就知道some方法, 最近需求需要排查两组数组中有相同id的对象和不同id的对象, 实际运用到了some的妙用~ 首先举例我的需求如下(得到id相同和id不同的数据): const aa = [{ ...
- android 集合 内存泄漏,Android内存泄漏第二课--------(集合中对象没清理造成的内存泄漏 )...
一.我们通常把一些对象的引用加入到了集合容器(比如ArrayList)中,当我们不需要该对象时,并没有把它的引用从集合中清理掉,这样这个集合就会越来越大.如果这个集合是static的话,那情况就更严重 ...
最新文章
- eclipse如何卸载adt插件
- runtime objc_msgSend
- linux 打开telnet登录,linux开启telnet
- 如何找出标有App Store 精华,Essentials的所有软件?
- Sublime text 3 汉化教程
- Android Wifi方法大全
- 全网最全Spring面试题之基础篇整理总结(共69题,附超详细解答)
- python压缩文件操作_python处理zip压缩文件 | 学步园
- php常见后缀绕过,文件包含漏洞(绕过姿势)
- 国际象棋游戏界面和简易棋谱规则-最新Python学习成果
- 程序员提高编程能力万无一失的办法
- Oracle 客户端安装 + pl/sql工具安装配置
- java 序列化,流,二进制的区别和联系
- Java基础知识——JavaIO
- 纯Vue实现网页日常任务清单小功能(数据存储在浏览器)
- 淘宝王琤:Taobao JVM的性能优势与价值体现
- 2021海南安全员考试及(安全员)模拟考试答案解析
- Ubuntu18.04 没有有以太网连接的解决办法
- 使用跟踪查看器查看 ASP.NET 跟踪信息
- 电脑不显示我的计算机管理,固态硬盘不显示在我的电脑怎么办
热门文章
- 大二面试bat ,阿里巴巴面试经历,普通本科(二本)
- Spring Boot 容器选择 Undertow 而不是 Tomcat Spring Boot 内嵌容器Unde
- 祝贺 弓叶科技总经理莫卓亚荣获“松山湖奋斗之星”
- 如何旋转PDF的页面方向?教你2种方法
- Ubuntu18.04 运行velodyne
- android 清理后自动重启,解决Android后台清理APP后,程序自动重启的问题
- termux 安装mysql 并运行b站爬虫入库 安卓11(手机上跑定时python爬虫)
- 根本原因分析(RCA)
- 迁移学习基础知识整理
- Ambarella S6L55M 性能测试之内存篇