Java Stream
在Java 8中引入的Stream API是用来处理对象的集合。流是一个支持各种方法的对象序列,可以通过流水线产生所需的结果。
Java流的特点是-
- 流不是一个数据结构,相反,它从集合、数组或I/O通道获取输入。
- 流不改变原来的数据结构,它们只是按照流水线的方法来提供结果。
- 每个中间操作都被懒散地执行,并返回一个流作为结果,因此各种中间操作可以被流水线化。终端操作标志着流的结束并返回结果。
对流的不同操作-
中间操作 。
- map: map方法用来返回一个由给定函数应用于该流元素的结果组成的流。
- 过滤器 : 过滤器方法用于根据作为参数传递的谓词选择元素。
- sorted: sorted方法用于对流进行排序。
终端操作
- collect: collect方法用来返回对流进行的中间操作的结果。
- forEach: forEach方法用于遍历流中的每个元素。
- reduce: reduce方法用于将流中的元素减少到一个单一的值。
reduce方法需要一个二进制操作器作为参数。
这里ans变量被赋予0作为初始值,i被添加到它上面。
演示流的使用的程序
输出:
重要观点/意见
- 一个流包括源,然后是零个或多个中间方法组合在一起(流水线)和一个终端方法,按照所述方法处理从源获得的对象。
- 流被用来按照流水线的方法计算元素,而不改变对象的原始值。