现在的位置: 首页 > 编程语言 > 正文

Java8流是什么

2020年01月06日 编程语言 ⁄ 共 990字 ⁄ 字号 评论关闭

  在说流之前,我们先来看看集合,为什么呢?作为Java8中的新成员,它和集合有很多相似之处,同时它们也是可以互相转化的。集合不仅仅是Java语言,任何一门高级开发语言都有集合的概念,集合顾名思义,就是很多数据集放在一起,它算是一个容器,同时我们也可以使用泛型来限制集合中的数据类型。

流是什么

  流作为是Java8的新成员,它允许我们以声明性的方式来处理数据集合。我们可以把它看成遍历数据集的高级迭代器。此外,流还可以透明地并行处理,这就使得我们无需编写任何多线程代码。在后续中我们再来详细说说流和流的并行化。

  从以上一段代码中,我们可以看出:

  1、代码是以声明性方式编写。即想要完成的工作,而非如何完成。

  2、可以使用操作链。filter之后的方法可以直接点,直到完成。

  由上,我们可以先简单的总结下使用流的好处:

  1、声明性:更简洁易读。

  2、可复用:更加灵活。

  3、可并行:性能更好。

流的介绍

  上面我看了流和集合的简单比较,那么到底流是什么呢?我们可以简单说明为“从支持数据处理操作的源生成的元素序列”。我们将这句话分开来解析:

  ①、元素序列:它就如何集合一样,可以访问特定元素类型的一组有序值。但它与集合是不同的,集合是一种数据结构,它的主要目的是在一定时间和空间上存储数据。而流主要用来计算。他们本质上是不同的。

  ②、源:即源头,流在处理数据时,这个数据的源头,例如:集合可以是个源,文件也可以是个源。

  ③、数据处理操作:流在处理数据时类似我们操作数据库,如:filter/map/sort等。流在处理数据时,可顺序执行也可并行执行。

  流在操作中具有两个很明显的特征:

  1、流水线。即流的操作返回的还是一个流,如此多个操作就可以一直往后链接,从而形成一个流水线。

  2、内部迭代。流在处理时,我们是看不到处理过程的,它是在背后执行的。我们可以回看上一节中,民警在筛选/排序/映射到后面的截取/转换等如何完成的,我们无法看到执行过程。

集合与流比对

  在Java8中集合和流是可以互相转化的,但从数据上来看,集合是可以不断的遍历,而流只可以遍历一次,一次遍历结束后,即代表该条流完成,若想再次处理,则需要重新建立一个流对象。若我们对一个已经完成的流再次处理,则会抛出异常。

  结束语:以上就是关于Java8流是什么的全部内容,更多内容请关注学步园。

抱歉!评论已关闭.