filter
Stream
返回一个新的经过过滤的流。
map
Stream map(FunctionT,? extends R> mapper)
返回一个经过map进行内容改变的新的流。
mapToInt
IntStreammapToInt(ToIntFunctionT> mapper)
返回一个IntStream ,其中包含将给定函数应用于此流的元素的结果。
sorted
Stream
Stream
返回由此流的元素组成的流,根据自然顺序排序。 如果该流的元件不是Comparable ,一个java.lang.ClassCastException执行终端操作时,可以抛出。
对于有序流,排序稳定。 对于无序的流,不能保证稳定性。但是可以定义comparator来自定义排序。
forEach
void forEach(ConsumerT> action)
对此流的每个元素执行操作。
这个操作的行为显然是不确定的。 对于并行流管道,此操作不保证遵守流的遇到顺序,因为这样做将牺牲并行性的好处。 对于任何给定的元 素,动作可以在图书馆选择的任何时间和任何线索中执行。 如果操作访问共享状态,则负责提供所需的同步。
collect
R collect(CollectorT,A,R> collector)
使用Collector对此流的元素执行mutable reduction Collector 。 A Collector将用作参数的函数封装到collect(Supplier, BiConsumer, BiConsumer) ,允许重用集合策略和组合收集操作(如多级分组或分区)。如果流是并行的,并且Collector是concurrent ,并且流是无序的或收集器是unordered ,则将执行并发的减少(有关并发减少的细节,请参阅Collector )。这是一个terminal operation 。当并行执行时,可以实例化,填充和合并多个中间结果,以便保持可变数据结构的隔离。 因此,即使与非线程安全的数据结构(例如ArrayList )并行执行,并行还原也不需要额外的同步。
API Note:以下将将字符串累加到ArrayList中:
ListasList = stringStream.collect(Collectors.toList());
以下将按城市分类Person对象:
Map
以下将按国家和城市对Person对象进行分类,将两个Collector组合在一起:
Map
想深入了解查看 https://github.com/winterbe/java8-tutorial