第一章 Lambda 表达式
- Lambda 表达式在 Java 语言中引入了 “->” 操作符, “->” 操作符被称为 Lambda 表达式 的操作符或者箭头操作符,它将 Lambda 表达式分为两部分: 左侧部分指定了 Lambda。
- Lambda 表达式本质上是对接口的实现,Lambda 表达式的参数列表本质上对应着接口中方法 的参数列表。 右侧部分指定了 Lambda 体,即 Lambda 表达式要执行的功能。
- Lambda 体本质上就是接口方法具体实现的功能。
语法格式
- 无参,无返回值,Lambda 体只有一条语句
- Lambda 表达式需要一个参数,并且无返回值
- Lambda 只需要一个参数时,参数的小括号可以省略
- Lambda 需要两个参数,并且有返回值
- 当 Lambda 体只有一条语句时,return 和大括号可以省
- Lambda 表达式的参数列表的数据类型可以省略不写,因为 JVM 编译器能够通过上下文推断出数据类型,这就是“类型推断”
函数式接口
只包含一个抽象方法的接口,称为函数式接口。
第二章 Stream API
- filter——接收 Lambda , 从流中排除某些元素。
- limit——截断流,使其元素不超过给定数量。
- skip(n) —— 跳过元素,返回一个扔掉了前 n 个元素的流。若流中元素不足 n 个,则返回 一个空流。与 limit(n) 互补
- distinct——筛选,通过流所生成元素的 hashCode() 和 equals() 去除重复元素
- map——接收 Lambda , 将元素转换成其他形式或提取信息。接收一个函数作为参数,该 函数会被应用到每个元素上,并将其映射成一个新的元素
- flatMap——接收一个函数作为参数,将流中的每个值都换成另一个流,然后把所有流连接成 一个流
- sorted()——自然排序
- sorted(Comparator com)——定制排
- allMatch——检查是否匹配所有元素
- anyMatch——检查是否至少匹配一个元素
- noneMatch——检查是否没有匹配的元素
- findFirst——返回第一个元素
- findAny——返回当前流中的任意元素
- count——返回流中元素的总个数
- max——返回流中最大值
- min——返回流中最小值
- reduce(T identity, BinaryOperator) / reduce(BinaryOperator) ——可以将流中元素反复 结合起来,得到一个值。
- collect——将流转换为其他形式。接收一个 Collector 接口的实现,用于给 Stream 中元素做 汇总的方法
第三章 Optional
第四章 本地时间和时间戳
主要Api
- now:静态方法,根据当前时间创建对象
- of:静态方法,根据指定日期/时间创建对象
- plusDays,plusWeeks,plusMonths,plusYears:向当前 LocalDate 对象添加几天、几周、几个 月、几年
- minusDays,minusWeeks,minusMonths,minusYears:从当前 LocalDate 对象减去几天、几 周、几个月、几年
- plus,minus:添加或减少一个 Duration 或 Period
- withDayOfMonth,withDayOfYear,withMonth,withYear:将月份天数、年份天数、月份、年 份修改为指定的值并返回新的 LocalDate 对象
- getDayOfYear:获得年份天数(1~366)
- getDayOfWeek:获得星期几(返回一个 DayOfWeek 枚举值)
- getMonth:获得月份, 返回一个 Month 枚举值
- getMonthValue:获得月份(1~12) getYear:获得年份
- until:获得两个日期之间的 Period 对象,或者指定 ChronoUnits 的数字
- isBefore,isAfter:比较两个 LocalDate isLeapYear:判断是否是闰年