流操作: 即stream接口针对于集合类提供的操作。集合类.stream()集合获取到stream(流),随之进行自己想要的操作。
- filter():按照一定条件过滤集合的元素 。
像filter()这类返回值为Stream的方法,它其实只是刻画出了stream,并没有产生新的集合,也就是按照规则构造出Stream流其他的都没有做,这类叫惰性求值方法。list.stream().filter(x -> x > 5);
- count():求集合的size.
list.stream().filter(x -> x > 5).count();
#像count()这类有不同返回值的,它们会执行语句,从stream中产生值返回,这类叫做及早求值方法。
-
collect(Collectors.toList()):返回新的list集合。
list.stream().filter(x -> x > 5).collect(Collectors.toList());
- map():将一个流中的值转换成另外的值。
list1.stream().map(x -> x.toUpperCase())
- flatMap:将一个或多个流转换成一个新流。
Stream.of(list1, list).flatMap(x -> x.stream()).collect(Collectors.toList());
- max,min:取集合的最大、最小值,需传入一个Comparator.
list.stream().max(Comparator.comparing(x -> x)).get()
Stream 接口的方法不少,实际运用起来不是简单的几个API,需要多个方法配合使用,所以要了解这些方法的作用,熟悉他们的运用,才能实际代码中派上用场。