《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一第1章 Java SE 8的流库

第1章 Java SE 8的流库
流提供了一种让我们可以在比集合更高的概念级别上指定计算的数据视图。通过使用流,我们可以说明想要完成什么任务,而不是说明如何去实现它。我们将操作的调度留给具体实现去解决。例如,假设我们想要计算某个属性的平均值,那么我们就可以指定数据源和该属性,然后,流库就可以对计算进行优化,例如,使用多线程来计算总和与个数,并将结果合并。
在本章中,你将会学习如何使用Java的流库,它是在Java SE 8中引入的,用来以“做什么而非怎么做”的方式处理集合。

时间: 2025-01-20 21:42:49

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一第1章 Java SE 8的流库的相关文章

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一1.13 基本类型流

1.13 基本类型流 到目前为止,我们都是将整数收集到Stream中,尽管很明显,将每个整数都包装到包装器对象中是很低效的.对其他基本类型来说,情况也是一样,这些基本类型是:double.f?loat.long.short.char.byte和boolean.流库中具有专门的类型IntStream.LongStream和DoubleStream,用来直接存储基本类型值,而无需使用包装器.如果想要存储short.char.byte和boolean,可以使用IntStream,而对于f?loat,可

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一1.5 其他的流转换

1.5 其他的流转换 distinct方法会返回一个流,它的元素是从原有流中产生的,即原来的元素按照同样的顺序剔除重复元素后产生的.这个流显然能够记住它已经看到过的元素. 对于流的排序,有多种sorted方法的变体可用.其中一种用于操作Comparable元素的流,而另一种可以接受一个Comparator.下面,我们对字符串排序,使得最长的字符串排在最前面: 与所有的流转换一样,sorted方法会产生一个新的流,它的元素是原有流中按照顺序排列的元素. 当然,我们在对集合排序时可以不使用流.但是,

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一1.4 抽取子流和连接流

1.4 抽取子流和连接流 调用stream.limit(n)会返回一个新的流,它在n个元素之后结束(如果原来的流更短,那么就会在流结束时结束).这个方法对于裁剪无限流的尺寸会显得特别有用.例如, 会产生一个包含100个随机数的流. 调用stream.skip(n)正好相反:它会丢弃前n个元素.这个方法在将文本分隔为单词时会显得很方便,因为按照split方法的工作方式,第一个元素是没什么用的空字符串.我们可以通过调用skip来跳过它: 我们可以用Stream类的静态的concat方法将两个流连接起

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一导读

前 言 致读者 本书是按照Java SE 8完全更新后的<Java核心技术 卷Ⅱ 高级特性(原书第10版)>.卷Ⅰ主要介绍了Java语言的一些关键特性:而本卷主要介绍编程人员进行专业软件开发时需要了解的高级主题.因此,与本书卷Ⅰ和之前的版本一样,我们仍将本书定位于用Java技术进行实际项目开发的编程人员. 编写任何一本书籍都难免会有一些错误或不准确的地方.我们非常乐意听到读者的意见.当然,我们更希望对本书问题的报告只听到一次.为此,我们创建了一个FAQ.bug修正以及应急方案的网站http:/

Java核心技术 卷Ⅰ 基础知识(原书第10版)

Java核心技术系列 Java核心技术 卷Ⅰ 基础知识 (原书第10版) Core Java Volume I-Fundamentals (10th Edition) [美] 凯S.霍斯特曼(Cay S. Horstmann) 著 周立新 陈 波 叶乃文 邝劲筠 杜永萍 译 图书在版编目(CIP)数据 Java核心技术 卷Ⅰ 基础知识(原书第10版) / (美)凯S. 霍斯特曼(Cay S. Horstmann)著:周立新等译. -北京:机械工业出版社,2016.8 (Java核心技术系列) 书

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一1.1 从迭代到流的操作

1.1 从迭代到流的操作 在处理集合时,我们通常会迭代遍历它的元素,并在每个元素上执行某项操作.例如,假设我们想要对某本书中的所有长单词进行计数.首先,将所有单词放到一个列表中: 现在,我们可以迭代它了: 在使用流时,相同的操作看起来像下面这样: 流的版本比循环版本要更易于阅读,因为我们不必扫描整个代码去查找过滤和计数操作,方法名就可以直接告诉我们其代码意欲何为.而且,循环需要非常详细地指定操作的顺序,而流却能够以其想要的任何方式来调度这些操作,只要结果是正确的即可. 仅将stream修改为pa

《Java语言导学(原书第6版)》一导读

前 言 自2010年年初Oracle公司收购Sun公司以来,Java语言迎来激动人心的时代.正如Java Community Process计划的活动所印证的,Java语言将不断发展.本书基于Java SE 8(Java Platform Standard Edition 8)并引用其API. 相比本书第5版(针对的是Java版本7),第6版有一些新特点: Lambda表达式使得功能可作为方法参数使用,代码作为数据使用.Lambda表达式描述单个方法接口(也称为功能接口)的实例会更简洁.4.4.

《Java语言导学(原书第6版)》一1.1 关于Java技术

1.1 关于Java技术 大家都在谈Java技术,但Java技术到底是什么?本节解释Java技术如何成为程序语言和平台,并概述Java技术的功能特性. 1.1.1 Java程序语言 Java程序语言是一种高级的编程语言,它具备如下性质: 简单 面向对象 分布式 多线程 动态 架构中立 可移植 高性能 强壮 安全 上述术语的定义可参考James Gosling和Henry McGilton的白皮书<The Java Language Environment>. 图1-1描述了Java应用程序开发

《Java语言导学(原书第6版)》一一1.1 关于Java技术

1.1 关于Java技术 大家都在谈Java技术,但Java技术到底是什么?本节解释Java技术如何成为程序语言和平台,并概述Java技术的功能特性.1.1.1 Java程序语言 Java程序语言是一种高级的编程语言,它具备如下性质: 简单 面向对象 分布式 多线程 动态 架构中立 可移植 高性能 强壮 安全 上述术语的定义可参考James Gosling和Henry McGilton的白皮书<The Java Language Environment>. 图1-1描述了Java应用程序开发的