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的用法 - 正义的五毛 - 博客园