在此过程中,操作行为完全封闭在各个集合内部,无需引入任何外部变量。真正的流与集合大相径庭,其只表示一种“可选的有序值序列”,而“无需为这些值提供任何存储”,这就是为何Stream在Java8-API中被定义为接口而非一种类。Stream为对象的流,而DoubleStream、LongStream以及IntStream则为double、long以及int这三种基本类型的流。现在我们再将第一次从String到Contact的映射用流的方式来重写:stream()从源中取得管道,表示流的开始。map()接收管道中的流并对其进行某种变换,在本例中,我们将管道中的String映射成为Contact类,自此,String管道成为Contact管道。既然牺牲了些许可读性,但是作为交换条件,我们在这种顺序执行的流操作中,获得了两倍于相应的循环版本的性能。同样,并行执行流操作对于大型数据集将产生非凡的效果。
暂无评论