Java 的 flatMap 是一个功能强大的工具,它允许您将嵌套流或集合展平为单个流。 为了简化代码,请使用 flatMap 而不是多个嵌套循环或多个 Stream 操作。 以下是一些示例:
假设您有一个包含 List
的 person
类。
公共 类 人员 {
私有 字符串名称;
private List 地址;
//构造函数、getter、setter方法
}
公共 类 地址 {
私人字符串街;
private String city;
//构造函数、getter、setter方法
}
示例 1:将嵌套列表平铺到流中:
List people = // ... 初始化人员列表
Stream names = people.stream()
. flatMap(person -> person.getAddresses( ). Stream()
.map(Address::getStreet));
示例 2:一次执行多个 Stream 操作 加入到:
List people = // ...初始化人员列表
Stream nameAndCities = people.stream()
. flatMap(person -> person.getAddresses().stream()
.map(Address::getStreet)
.collect(Collectors.toList())
.stream()
.collect(Collectors.groupingBy(街道 -> 街道, Collectors.counting()));
示例 3:将嵌套选项展平到流中:
列出人员= // ... 初始化人员列表
Stream Name = people.stream()
. flatMap(person ->Optional.ofNullable( person.getName()).stream());
使用 flatMap 降低了代码复杂度,更易于阅读和维护。
以上内容来源于互联网,不代表本站全部观点。 欢迎关注:zhujipindao.com
评论前必须登录!
注册