添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Java8 stream操作集合

自java8以来,jdk中的新的语法糖,提高了编程效率,精简了代码,简直是开发者的福音,以下介绍分享一下stream使用较多的用法。

1、合并多个list集合

示例:

......
Map<String, List<String>> map = new HashMap<>();
List<String> list1 = new ArrayList<>();
list1.add("1");
list1.add("2");
list1.add("3");
map.put("list1", list1);
List<String> list2 = new ArrayList<>();
list2.add("4");
list2.add("6");
list2.add("5");
map.put("list2", list2);
List<String> collect = map.entrySet().stream().flatMap(entry -> entry.getValue().stream()).collect(Collectors.toList());
.......

2、Stream集合分组统计

// 将user数组对象按用户名分组统计个数
Map<String, Long> collect2 = users.stream().collect(Collectors.groupingBy(User::getUserName, Collectors.counting()));
// 分组求和统计
Map<String, DoubleSummaryStatistics> collect2 = users.stream().collect(Collectors.groupingBy(User::getUserName, Collectors.summarizingDouble(User::getId));

3、Stream集合集合特殊去重

userInfos = userInfos.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()->