博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java8采用stream对集合的常用操作
阅读量:4140 次
发布时间:2019-05-25

本文共 1210 字,大约阅读时间需要 4 分钟。

记录一下java8采用stream对集合的常用操作

User :{	id,	name,	age}

1.对象集合的分组(有两种形式)

示例:List userList,根据id分组,可以分组成为两种格式的map
(1)Map<id,User>

Map
map = userList.stream().collect(Collectors.toMap(User::getId, Function.identity()));

(2)Map<id,List>

Map
> = userList.stream().collect(Collectors.groupingBy(User::getId));

2.去重操作

对List 实现去重,distinct关键字

示例:userList= userList.stream().distinct().collect(Collectors.toList());

3.stream的map

主要用于得到特定的结构
例如:List userList,我向得到User Id的集合

List
idList = userList.stream.map(User::getId).collect(Collectors.toList());

4.stream的filter

主要用于数据的筛选。
例1:一个条件的筛选,删选id>5的User

List
userList = userList.stream.filter(i->i.getId()>5).collect(Collectors.toList());

例2:两个条件的删选用&&连接就行,删选id>5年纪>10的User

List
userList = userList.stream.filter(i->i.getId()>5&&i.getAge()>10).collect(Collectors.toList());

5.用来作循环

userList.stream().forEach(user -> System.out.println("姓名:" + user.getName()));

当然也可以加个limit限制数量

userList.stream().limit(2).forEach(user -> System.out.println("姓名:" + user.getName()));

6.最大值最小值

int maxAge = userList.stream().mapToInt(User::getAge).max().getAsInt(); int minAge = userList.stream().mapToInt(User::getAge).min().getAsInt();

转载地址:http://zykti.baihongyu.com/

你可能感兴趣的文章
如何防止sql注入
查看>>
springmvc传值
查看>>
在Eclipse中查看Android源码
查看>>
Android使用webservice客户端实例
查看>>
[转]C语言printf
查看>>
C 语言 学习---获取文本框内容及字符串拼接
查看>>
C 语言学习 --设置文本框内容及进制转换
查看>>
C 语言 学习---判断文本框取得的数是否是整数
查看>>
C 语言 学习---ComboBox相关、简单计算器
查看>>
C 语言 学习---ComboBox相关、简易“假”管理系统
查看>>
C 语言 学习---回调、时间定时更新程序
查看>>
C 语言 学习---复选框及列表框的使用
查看>>
第十一章 - 直接内存
查看>>
JDBC核心技术 - 上篇
查看>>
一篇搞懂Java反射机制
查看>>
Single Number II --出现一次的数(重)
查看>>
Palindrome Partitioning --回文切割 深搜(重重)
查看>>
对话周鸿袆:从程序员创业谈起
查看>>
Mysql中下划线问题
查看>>
Xcode 11 报错,提示libstdc++.6 缺失,解决方案
查看>>