1. @Data
  2. @AllArgsConstructor
  3. @NoArgsConstructor
  4. static class StreamItem {
  5. Integer id;
  6. String name;
  7. Boolean sex;
  8. }
  9. List<StreamItem> list = Lists.newArrayList(new StreamItem(1, "a", true), new StreamItem(2, "b", false),
  10. new StreamItem(3, "c", true), new StreamItem(1, "d", false), new StreamItem(4, "e", true));
  1. List<String> list2 = list.stream().map(StreamItem::getName).collect(Collectors.toList());
  2. System.out.println(list2);
  3. [a, b, c, d, e]
  1. Map<Integer, List<StreamItem>> list2 = list.stream().collect(Collectors.groupingBy(StreamItem::getId));
  2. System.out.println(list2);
  3. {1=[StreamStudy.StreamItem(id=1, name=a, sex=true), StreamStudy.StreamItem(id=1, name=d, sex=false)], 2=[StreamStudy.StreamItem(id=2, name=b, sex=false)],
  4. 3=[StreamStudy.StreamItem(id=3, name=c, sex=true)], 4=[StreamStudy.StreamItem(id=4, name=e, sex=true)]}
  1. Map<Integer, String> list2 = list.stream().collect(Collectors.toMap(StreamItem::getId, StreamItem::getName, (k1, k2) -> k2));
  2. System.out.println(list2);
  3. {1=d, 2=b, 3=c, 4=e}
  1. List<StreamItem> list2 = list.stream().filter(StreamItem::getSex).collect(Collectors.toList());
  2. System.out.println(list2);
  3. [StreamStudy.StreamItem(id=1, name=a, sex=true), StreamStudy.StreamItem(id=3, name=c, sex=true), StreamStudy.StreamItem(id=4, name=e, sex=true)]
  1. int sum = list.stream().mapToInt(StreamItem::getId).sum();
  2. System.out.println(sum);
  3. sum = list.stream().map(StreamItem::getId).reduce(Integer::sum).get();
  4. System.out.println(sum);
  5. sum = list.stream().map(StreamItem::getId).reduce(0, Integer::sum);
  6. System.out.println(sum);
  7. BigDecimal bigDecimal = list.stream()
  8. .map(streamItem -> new BigDecimal(streamItem.getId()))
  9. .reduce(BigDecimal.ZERO, BigDecimal::add);
  10. System.out.println(bigDecimal);
  11. 11
  12. 11
  13. 11
  14. 11

使用Stream快速对List进行一些操作
Java8之Consumer、Supplier、Predicate和Function攻略

版权声明:本文为eaglelihh原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/eaglelihh/p/13848819.html