一、流程:
stream of elements -> filter -> sorted -> map -> collect
二、java格式
List<Integer> transactionsIds =
widgets.stream()
.filter(b -> b.getColor() == RED)
.sorted((x,y) -> x.getWeight() - y.getWeight())
.mapToInt(Widget::getWeight)
.sum();
三、具体方法
(1)在java8中,集合接口有两种方式来生成流:
stream() 创建串行流
parallelStream() 创建并行流
(2)iterate()无限流、::方法引用
Stream stream = Stream.iterate(0, (x) -> x + 2).limit(6);
stream.forEach(System.out::println); // 0 2 4 6 8 10
(3)peek消费(可修改流中元素)
list.stream().peek(o -> o.setName(“无返回值”)).forEach(System.out::println);
(4)collect:接收一个collector示例,将流中元素收集成另外一个数据结构
stream().collect(Collectors.toList())
stream().collect(Collectors.toSet())
stream().collect(Collectors.toMap())
stream().collect(Collectors.joining(…)) //字符串分隔符连接
…