不理解 Java Steam?一步步梳理其工作方式
Java Stream 已经出现很长时间了,但很多Java程序员还是不理解它的工作方式。 不会 Stream 不要紧,我们开发的时候可以不用 Stream,但理解 Stream 是咋回事还是非常必要的,至少得能看懂别人代码中的 Steam 是吧。 下面就通过一段代码,逐条说明每行代码的含义,然后再对照一下不使用 Stream 的用法,之后就可以轻松理解 Stream 的用法了。 1. Stream 示例代码解析 这段 Stream 代码共有 5 行,下面看每一行都是什么意思。 第1行 第一行我们分成2部分来看,一是内部的 Lambda 表达式: num -> num + 4 这就是一个非常简单的方法,等价于: int xxx(int num){ return num + 4; } 传入参数 num,然后返回 +4 后的结果。 第2部分是 Stream.iterate() 方法,此方法会创建一个无限的流,第一个参数 “4” 就是流的起点,第二个参数 Lambda 表达式用来生产后续的流元素。 那么第一行联合起来的意思就是,从4开始,之后的每个流元素都是持续 “+4” 计算出来,产生...