译者序
序
前言
第1章 基础知识
1.1 lambda表达式
1.2 方法引用
1.3 构造函数引用
1.4 函数式接口
1.5 接口中的默认方法
1.6 接口中的静态方法
第2章 java.util.function包
2.1 Consumer接口
2.2 Supplier接口
2.3 Predicate接口
2.4 Function接口
第3章 流式操作
3.1 流的创建
3.2 装箱流
3.3 利用reduce方法实现归约操作
3.4 利用reduce方法校验排序
3.5 利用peek方法对流进行调试
3.6 字符串与流之间的转换
3.7 获取元素数量
3.8 汇总统计
3.9 查找流的第一个元素
3.10 使用anyMatch、allMatch与noneMatch方法
3.11 使用flatMap与map方法
3.12 流的拼接
3.13 惰性流
第4章 比较器与收集器
4.1 利用比较器实现排序
4.2 将流转换为集合
4.3 将线性集合添加到映射
4.4 对映射排序
4.5 分区与分组
4.6 下游收集器
4.7 查找最大值和最小值
4.8 创建不可变集合
4.9 实现Collector接口
第5章 流式操作、lambda表达式与方法引用的相关问题
5.1 java.util.Objects类
5.2 lambda表达式与效果等同于final的变量
5.3 随机数流
5.4 Map接口的默认方法
5.5 默认方法冲突
5.6 集合与映射的迭代
5.7 利用Supplier创建日志消息
5.8 闭包复合
5.9 利用提取的方法实现异常处理
5.10 受检异常与lambda表达式
5.11 泛型异常包装器的应用
第6章 Optional类
6.1 Optional的创建
6.2 从Optional中检索值
6.3 getter和setter方法中的Optional
6.4 Optional.flatMap与Optional.map方法
6.5 Optional的映射
第7章 文件I/O
7.1 文件处理
7.2 以流的形式检索文件
7.3 文件系统的遍历
7.4 文件系统的搜索
第8章 java.time包
8.1 Date-TimeAPI中的基本类
8.2 根据现有实例创建日期和时间
8.3 调节器与查询
8.4 将java.util.Date转换为java.time.LocalDate
8.5 解析与格式化
8.6 查找具有非整数小时偏移量的时区
8.7 根据UTC偏移量查找地区名
8.8 获取事件之间的时间
第9章 并行与并发
9.1 将顺序流转换为并行流
9.2 并行流的优点
9.3 调整线程池大小
9.4 Future接口
9.5 完成CompletableFuture
9.6 多个CompletableFuture之间的协调(第1部分)
9.7 多个CompletableFuture之间的协调(第2部分)
第10章 Java 9新特性
10.1 Jigsaw中的模块
10.2 接口中的私有方法
10.3 创建不可变集合
10.4 新增的Stream方法
10.5 下游收集器:filtering与flatMapping
10.6 新增的Optional方法
10.7 日期范围
附录A 泛型与Java 8
作者简介
封面介绍