译者序 ix
序 xi
前言 xiii
第1章 基础知识 1
1.1 lambda 表达式 2
1.2 方法引用 5
1.3 构造函数引用 8
1.4 函数式接口 12
1.5 接口中的默认方法 14
1.6 接口中的静态方法 17
第2章 java.util.function 包 20
2.1 Consumer 接口 20
2.2 Supplier 接口 22
2.3 Predicate 接口 25
2.4 Function 接口 28
第3章 流式操作 31
3.1 流的创建 31
3.2 装箱流 35
3.3 利用reduce 方法实现归约操作 36
3.4 利用reduce 方法校验排序 44
3.5 利用peek 方法对流进行调试 45
3.6 字符串与流之间的转换 47
3.7 获取元素数量 50
3.8 汇总统计 52
3.9 查找流的第一个元素 54
3.10 使用anyMatch、allMatch 与noneMatch 方法 58
3.11 使用flatMap 与map 方法 60
3.12 流的拼接 63
3.13 惰性流 66
第4章 比较器与收集器 69
4.1 利用比较器实现排序 69
4.2 将流转换为集合 72
4.3 将线性集合添加到映射 75
4.4 对映射排序 77
4.5 分区与分组 79
4.6 下游收集器 81
4.7 查找最大值和最小值 83
4.8 创建不可变集合 85
4.9 实现Collector 接口 87
第5章 流式操作、lambda 表达式与方法引用的相关问题 91
5.1 java.util.Objects 类 91
5.2 lambda 表达式与效果等同于final 的变量 93
5.3 随机数流 96
5.4 Map 接口的默认方法 97
5.5 默认方法冲突 101
5.6 集合与映射的迭代 103
5.7 利用Supplier 创建日志消息 105
5.8 闭包复合 107
5.9 利用提取的方法实现异常处理 110
5.10 受检异常与lambda 表达式 112
5.11 泛型异常包装器的应用 114
第6章 Optional 类 117
6.1 Optional 的创建 118
6.2 从Optional 中检索值 120
6.3 getter 和setter 方法中的Optional 122
6.4 Optional.flatMap 与Optional.map 方法 124
6.5 Optional 的映射 127
第7章 文件I/O 131
7.1 文件处理 132
7.2 以流的形式检索文件 134
7.3 文件系统的遍历 135
7.4 文件系统的搜索 137
第8章 java.time 包 139
8.1 Date-Time API 中的基本类 140
8.2 根据现有实例创建日期和时间 143
8.3 调节器与查询 147
8.4 将java.util.Date 转换为java.time.LocalDate 152
8.5 解析与格式化 155
8.6 查找具有非整数小时偏移量的时区 158
8.7 根据UTC 偏移量查找地区名 160
8.8 获取事件之间的时间 162
第9章 并行与并发 165
9.1 将顺序流转换为并行流 166
9.2 并行流的优点 169
9.3 调整线程池大小 173
9.4 Future 接口 175
9.5 完成CompletableFuture 178
9.6 多个CompletableFuture 之间的协调(第1 部分) 181
9.7 多个CompletableFuture 之间的协调(第2 部分) 186
第10章 Java 9 新特性 193
10.1 Jigsaw 中的模块 194
10.2 接口中的私有方法 198
10.3 创建不可变集合 200
10.4 新增的Stream 方法 204
10.5 下游收集器:filtering 与flatMapping 207
10.6 新增的Optional 方法 210
10.7 日期范围 212
附录A 泛型与Java 8 215
作者简介 230
封面介绍 230
· · · · · · (
收起)