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

简介: 本节书摘来华章计算机《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一书中的第1章 ,第1.13节,[美] 凯S.霍斯特曼(Cay S. Horstmann) 著陈昊鹏 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.13 基本类型流

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

与对象流一样,我们还可以使用静态的generate和iterate方法。此外,IntStream和LongStream有静态方法range和rangeClosed,可以生成步长为1的整数范围:
image

CharSequence接口拥有codePoints和chars方法,可以生成由字符的Unicode码或由UTF-16编码机制的码元构成的IntStream。(请参见第2章以了解其复杂的细节。)
image

当你有一个对象流时,可以用mapToInt、mapToLong和mapToDouble将其转换为基本类型流。例如,如果你有一个字符串流,并想将其长度处理为整数,那么就可以在IntStream中实现此目的:
image

为了将基本类型流转换为对象流,需要使用boxed方法:
image

image

注意:Random类具有ints、longs和doubles方法,它们会返回由随机数构成的基本类型流。

程序清单1-7给出了基本类型流的API的示例。
程序清单1-7 streams/PrimitiveTypeStreams.java
image
image

java.util.stream.IntStream 8
image

java.util.stream.DoubleStream 8
image

image
image

相关文章
|
1月前
|
开发框架 Java API
最新Java基础系列课程--Day13-高级特性(二)
最新Java基础系列课程--Day13-高级特性
|
3月前
|
Java 流计算
Flink类型与Java基本类型关系映射表
Flink类型与Java基本类型关系映射表
21 0
|
1月前
|
Java 程序员 API
最新Java基础系列课程--Day13-高级特性(三)
最新Java基础系列课程--Day13-高级特性
|
1月前
|
开发框架 Java 程序员
最新Java基础系列课程--Day13-高级特性(一)
最新Java基础系列课程--Day13-高级特性
|
2月前
|
存储 缓存 Java
【Java进阶篇】✅Java中有了基本类型为什么还需要包装类?
Java中有了基本类型为什么还需要包装类?
28 0
|
2月前
|
开发框架 Java 程序员
最新Java基础系列课程--Day13-高级特性
最新Java基础系列课程--Day13-高级特性
|
2月前
|
存储 Java 编译器
《Java 核心技术卷1 基础知识》第三章 Java 的基本程序设计结构 笔记(下)
《Java 核心技术卷1 基础知识》第三章 Java 的基本程序设计结构 笔记
78 0
|
2月前
|
存储 自然语言处理 Java
《Java 核心技术卷1 基础知识》第三章 Java 的基本程序设计结构 笔记(上)
《Java 核心技术卷1 基础知识》第三章 Java 的基本程序设计结构 笔记
76 0
|
2月前
|
Oracle Java 关系型数据库
《Java 核心技术卷1 基础知识》第二章 Java 程序设计环境 笔记
《Java 核心技术卷1 基础知识》第二章 Java 程序设计环境 笔记
29 1
|
2月前
|
存储 Java 编译器
《Java 核心技术卷1 基础知识》第一章 Java程序设计概述 笔记
《Java 核心技术卷1 基础知识》第一章 Java程序设计概述 笔记
40 0