流是一系列数据项,一次只生成一项。
Java 8新增的编程概念:流处理,通过API来传递代码,函数式编程。
::语法:"把这个方法作为值"。
函数式编程风格:编写把函数作为一等值的程序。
谓词(Predicate):谓词接受一个参数值,并返回true或false。Predicate<T>是更标准的方式,避免了把boolean封装在Boolean中。
集合,for-each,处理数据 ——外部迭代;Steam API数据处理完全在库内部进行——内部迭代。
Collection主要是为了存储和访问数据,而Stream则主要用于描述对数据的计算。
Optional<T>类是 一个容器对象,它可以包含或不包含一个值。其中有方法处理值不存在的情况,从而避免NullPointerException。
在借口中使用default方法,在实现类没有实现方法时提供方法内容。
Stream的概念使得Collections的许多方面得以推广,使代码更易读,并允许并行流处理元素。
(结构)模式匹配:函数是分情况定义的,而不是使用if-then-else。
函数式语言倾向于允许switch用在更多的数据类型上,包括允许模式匹配。