0
点赞
收藏
分享

微信扫一扫

Java lambda stream 集合相关操作 备忘

m逆光生长 2022-04-27 阅读 71
java

Arrays.stream(传入数组);// 把数组转成流

Stream.of(传入数组);

==========

flatMap  map的区别

假设某个值要拆分成数组, flatMap可以数值转成流, 合并起来

而map则只能返回数组

==================

list对象转map结构

Map map = list.stream().collect(Collectors.toMap(item -> item.getId(), v -> v,(k1,k2)->k1));

java8利用流和lambda表达式对list遍历处理 - Yusco - 博客园

==============

Collectors.mapping()_技匠而已的博客-CSDN博客_collectors.mapping null

Collectors.mapping()

获取list中的 全部名称, 中括号包含文本

方式一:

names=list.stream().collect(Collectors.mapping(Person:getName,Collectors.joining(",","[","]"))
方式二:

names=list.stream().map(user->user.getName()).collect(Collectors.joining(",","[", "]"))

把一个数据, 分组后, 拿到组中所有的对象id

Map<Integer, String> idByAgeMap = list.stream().collect(
        Collectors.groupingBy(user::getAge, Collectors.mapping(user::getId, Collectors.joining(","))));

分组后, 把joinng换成max 等函数, 可以取分组最大值

=======

reduce,  初始化值和当前元素计算后的结果, 再与后面的元素计算

=======

peek() // 方便在steam过程中的增加操作, 比如debug数据

=====================

https://www.jb51.net/article/186960.htm

Java中的函数式编程(七)流Stream的Map-Reduce操作 - 安员外 - 博客园

如何运用Java 8的stream将两个集合合并? - 知乎

java8利用流和lambda表达式对list遍历处理 - Yusco - 博客园

java8 Map 的compute的用法 - 正义的五毛 - 博客园

=============

不会Lambda表达式、函数式编程?你确定能看懂公司代码?-java8函数式编程(Lambda表达式,Optional,Stream流)从入门到精通-最通俗易懂_哔哩哔哩_bilibili

创建optional对象

Optional.ofNullable(xxx); // 安全创建, 推荐
Optional.of(xxx);// 传入对象必须 非null
封装null 返回值时, 使用 Optional.empty();

xxOpt.ifPresent( lambda表达式 );// 安全消费, 推荐

get()可能会出现null指针的情况 
xxOpt.orElseGet( lambda表达式); // 为null时, 如果给定默认值的表达式
orElseThrow(略);// 抛出异常的方式

也有filter, map等方法进行过滤, 数据转换

=============

java8 Map 的compute的用法 - 正义的五毛 - 博客园

举报

相关推荐

0 条评论