Java8 的新特性主要是 Lambda 表达式和流, 当流和 Lambda 表达式结合起来一起使用时, 因为流申明式处理数据集合的特点,可以让代码变得简洁易读。 流是从支持数据处理操作的源生成的元素序列,源可以是数组、文件、集合、函数。流不是集合元素,它不是数据 ...
[导读]写在前面 先说点题外话:不少读者工作几年后,仍然在使用Java7之前版本的方法,对于Java8版本的新特性,甚至是Java7的新特性几乎没有接触过。真心想对这些读者说:你真的需要了解下Java8甚至以后版本的新特性了。 今天,一名读者出去面试,面试官问他 ...
这是一个非常通用的利用 stack 进行 Binary Tree Iterator 的写法。 stack 中保存一路走到当前节点的所有节点,stack.peek() 一直指向 iterator 指向的当前节点。 因此判断有没有下一个,只需要判断 stack 是否为空 获得下一个值,只需要返回 stack.peek() 的值,并将 stack 进行 ...
上例中暗含了装箱的成本,每个Integer都必须拆箱成一个原始类型,再进行求和。 解决方法: Java8中引入了三个原始类型特化流接口来解决这个问题:IntStream,DoubleStream和LongStream,分别将流中的元素特化为int,long和double,从而避免了暗含的装箱成本。 将流转换为特 ...