`
jonathan_chen
  • 浏览: 2287 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java 流 - Java 流的介绍

阅读更多
流是支持串行和并行聚合操作的数据值的序列。

我们更经常在SQL中使用聚合函数。例如,我们可以对一个月或一年的所有销售数字求和。
我们还可以对给定范围求最大值。

一个聚合操作用于项目的一个列表上,并产生一个单一的值。

对流进行聚集操作的结果可能是一个原始值,对象或空流。正如SQL,我们可以计算出整数流中所有整数的总和。

集合 对 流 Collections vs Streams

Java集合专注于如何存储数据元素以便于高效访问。
Java流专注于在一个数据源的数据元素上的聚合操作。

流的特征 Streams Features
Java流有其自身的特征。

无存储 No Storage

Java流没有存储。

集合是在内存中存储其所有元素的数据结构。

流没有存储。流按需从数据源获取元素,并将它们传递给操作的管道进行处理。

对于一个集合,我们关注其存储,即如何存储数据元素,如何访问数据元素。

对于一个流,我们着眼于操作,例如,如何对其求和。

无限之流 Infinite Streams

集合不能表示一组无限的元素,而流可以。

流可以从一个数据源获取元素。数据源可以是一个集合,一个生成数据的函数,一个I/O通道,等等。

流可以从生成无限数量的元素的一个函数中提取数据。

不可重用 Not Reusable

流是不可重用的。

流不能在调用终端操作后重复使用。

对相同数据源的相同元素执行不同的计算,我们必须重新创建流管道。

在重复使用的情况下,流可能会抛出一个IllegalStateException。

来源:http://www.java2s.com/Tutorials/Java/Java_Stream/index.htm
分享到:
评论

相关推荐

    javacv-platform-1.5.4.zip

    7. **设备交互**: JavaCV支持与摄像头、视频文件以及网络流的交互,可以实时捕获和处理视频流。 在开发过程中,使用`javacv-platform-1.5.4`时,你需要将压缩包中的jar文件添加到项目的类路径中,以便能够访问和...

    Java开发案例-springboot-59-整合Flowable工作流-源代码+文档.rar

    Java开发案例-springboot-59-整合Flowable工作流-源代码+文档.rar Java开发案例-springboot-59-整合Flowable工作流-源代码+文档.rar Java开发案例-springboot-59-整合Flowable工作流-源代码+文档.rar Java开发案例-...

    javacv-platform-1.4.4-bin.zip

    JavaCV提供了与FFmpeg的接口,使得在Java中进行音视频处理变得简单,例如,可以用于实时视频流的捕获和分析。 ImageIO是Java标准库的一部分,用于读取、写入和处理图像文件。JavaCV扩展了ImageIO的功能,添加了对更...

    Java-Io流,练习

    Java的IO流是Java编程语言中的重要组成部分,它主要用于数据的输入和输出操作。在Java中,IO流被设计为处理任何类型的数据,包括字符、字节甚至对象。本练习旨在帮助初学者理解和掌握Java IO流的基础知识。 一、IO...

    javacv-platform-1.3-bin.zip

    它提供了录制、转换和流媒体的能力。在JavaCV 1.3中,你可以利用FFmpeg进行视频的编码、解码、帧提取、格式转换等操作,对于开发音视频应用非常有用。 除此之外,JavaCV还包含了Face_recognition库,这是一个基于...

    java-8-openjdk-amd64

    3. **流(Stream)**:流API提供了处理集合的新方式,支持并行处理和函数式编程风格,使代码更易读、更高效。 4. **Date和Time API重构**:新的java.time包替代了旧的日期和时间API,提供了更强大、更直观的时间日期...

    mysql-connector-java-5.1.40-bin.jar连接器

    MySQL Connector/J是MySQL数据库系统与Java应用程序之间的重要桥梁,它是一个实现了JDBC(Java Database Connectivity)规范的驱动程序,使得Java开发者能够通过编写Java代码来访问、操作MySQL数据库。在这个特定的...

    java io流-3.pdf

    ### Java I/O流知识点概述 #### 一、Java I/O流基础 - **I/O流的概念**:Java中的所有输入/输出(I/O)设施都基于流,它提供了一种简单的方式来读取和写入不同类型的文件数据。 - **四类主要流**:Java I/O系统...

    java-sdk-4.11.0.jar

    java-sdk-4.10.0.jar,百度云AI技术,可以识别图片上的文字,数字等信息,也可以从网络输入流中获取信息

    Java接入微信公众号weixin-java-mp-demo-springboot-master

    基于Spring Boot 和 WxJava 实现的微信公众号Java后端Demo,支持多公众号

    mysql连接包mysql-connector-java-5.1.27.jar

    MySQL是世界上最流行的开源关系型数据库管理系统之一,而`mysql-connector-java`是MySQL官方提供的用于Java应用程序连接到MySQL服务器的驱动程序。`mysql-connector-java-5.1.27.jar`是这个驱动的一个特定版本,它...

    Java 第二阶段提升编程能力【IO流】---- 代码

    Java 第二阶段提升编程能力【IO流】---- 代码 Java 第二阶段提升编程能力【IO流】---- 代码 Java 第二阶段提升编程能力【IO流】---- 代码 Java 第二阶段提升编程能力【IO流】---- 代码 Java 第二阶段提升编程能力...

    java课件-------流

    Java提供了丰富的流API,涵盖了字节流、字符流、对象流等多种类型,以及输入流、输出流、缓冲流、过滤流等不同功能的流。 在Java中,文件操作主要通过`java.io`包下的`File`类来实现。例如,`File`类提供了获取...

    字节流---马克-to-win java视频

    字节流---马克-to-win java视频的详细介绍与描述 stream

    Java教程-流介绍和创建

    总的来说,Java流提供了一种高效、灵活且声明式的处理大量数据的方式,特别适合大数据量和并行计算的场景。它鼓励程序员采用更简洁、更可读的代码风格,同时通过内置的优化机制提高了程序的性能。学习和掌握流的概念...

    rtmp-rtsp-stream-client-java-master.zip

    下面将详细介绍这个项目涉及的关键知识点。 1. **RTMP (Real-Time Messaging Protocol)** RTMP是一种协议,常用于在线流媒体传输,尤其是视频直播。它允许客户端与服务器之间快速交换数据,确保视频流的实时性。在...

    浅谈标准数据流---对java数据流的体会

    根据给定文件的信息,本文将深入探讨Java中的标准数据流,并结合实际代码示例来解析其工作原理与应用场景。 ### Java标准数据流简介 在Java编程语言中,数据流是处理输入输出的基础概念之一,主要涉及到如何从一个...

    JAVA基础-初识JAVA

    9. **学习资源**:`初识java.md`可能是一个Markdown格式的学习笔记或教程,详细介绍了Java的基本概念和用法。`code`可能包含了一些示例代码,供学习者实践和理解。 总之,"JAVA基础-初识JAVA"这个主题涵盖了Java...

    java流详细介绍

    ### Java流详细介绍 在Java编程语言中,流(Stream)是一种用于处理输入输出(I/O)操作的基础概念。Java中的流主要分为两大类:字节流(如InputStream和OutputStream)和字符流(如Reader和Writer)。这两种类型的...

    Java教程--ppt

    1. **Java简介**:首先,教程会介绍Java的历史背景,为什么选择Java,它的应用领域以及它的主要特点,如跨平台性(Write Once, Run Anywhere)和垃圾回收机制。 2. **Java环境配置**:讲解如何安装Java Development...

Global site tag (gtag.js) - Google Analytics