注意:所有文章除特别说明外,转载请注明出处.
[TOC]
函数式接口
Collectors 源码
groupingBy()
groupingByConcurrent()
partitioningBy()
Stream 源码
在Stream中提供了三个原生的流(IntStream | LongStream | DoubleStream)是为了避免不必要的装箱和拆箱操作。
集合主要关注的是对于数据的管理和存储,而流主要关注的是对元素之间的计算。
stream pipeline(流管道)可以看做是对于流源的一种查询,除非该流被显示的设计成可以并发修改的。
流只能被操作一次。否则会抛出异常。然有些流操作会返回接收者,不是新的流对象。
流对于是并行或串行可以通过方法(sequential() - 串行 | parallel() - 并行)来进行修改。还可以通过isParallel()方法查询该流是否是并行的。
AutoCloseable
在该接口中只提供一个close()方法,在实现该接口之后的应用会自动关闭。
BaseStream
Spliterator spliterator()
该方法被称为分割迭代器(类似于Iterator),是流的一个终止操作。迭代流中的元素。
iterator()
返回迭代器,对流中的数据进行迭代。
S sequential()
S parallel()
S onClose(Runnable closeHandler)
关闭处理器方法,流中的close()方法被调用的时候,该处理器才会被调用,调用的顺序是按照添加的顺序从先到后调用。
close()
该方法是重写AutoCloseable接口中的方法。
提示:CopyAndReadArrayList 是将底层的数据重新复制一份,在新的复制的一份数据上进行操作。其适用的场景是读多写少的场景。