java8(mym)
2021-02-20 15:55:35 0 举报
AI智能生成
java8快速入门
作者其他创作
大纲/内容
Java8新特性
速度更快
代码更少(增加了lambda表达试)
强大的Stream API
便于并行
最大化减少空指针异常 Optional
lambda
内置的四大核心函数式接口
Consumer<T>:消费型接口
void accept(T t)
Supplier<T>: 供给型接口
T get()
Function<T,R>: function型接口
R apply(T t)
Predicate<T>: 断言型接口
boolean test(T t)
方法引用
对象::实例方法
类::静态方法
类::实例方法
构造器引用
ClassName::new
Function<Integer,MyClass> fun=(n)-> new MyClass(n);
Function<Intger,MyClass> fun=MyClass::new;
Function<Intger,MyClass> fun=MyClass::new;
数组引用
type[] :: new
Stream API
注意
Stream 自己不会存储元素
Stream 不会改变源对象
Stream 操作是延迟执行的
Stream 三个步骤
创建 Stream
iterate
generate
中间操作
筛选与切片
filter(Predicate p)
distinct()
limit(long maxSize)
skip(long n)
映射
map(Function f)
mapToDouble(ToDoubleFunction f)
mapToInt(ToIntFunction f)
mapToLong(ToLongFunction f)
flatMap(Function f)
排序
sorted()
sorted(Comparator comp)
终止操作(终端操作)
查找与匹配
allMatch(Predicate p)
anyMatch(Predicate p)
noneMatch(Predicate p)
findFirst()
findAny()
count()
max(Comparator c)
forEach(Consumer c)
归约
reduce(T iden, BinaryOperator b)
reduce(BinaryOperator b)
收集
collect(Collector c)
并行流与串行流
parallel、sequential
Fork/Join
新时间日期 API
LocalDate\LocalTime\LocalDateTime
DateTimeFormatter
Instant
Duration
Period
TemporalAdjuster
ZonedDate、ZonedTime、ZonedDateTime : 带时区的时间或日期
接口中的默认方法与静态方法
类优先
Optional 类
Optional.of(T t) : 创建一个 Optional 实例
Optional.empty() : 创建一个空的 Optional 实例
Optional.ofNullable(T t):若 t 不为 null,创建 Optional 实例,否则创建空实例
isPresent() : 判断是否包含值
orElse(T t) : 如果调用对象包含值,返回该值,否则返回t
orElseGet(Supplier s) :如果调用对象包含值,返回该值,否则返回 s 获取的值
map(Function f): 如果有值对其处理,并返回处理后的Optional,否则返回 Optional.empty()
flatMap(Function mapper):与 map 类似,要求返回值必须是Optional
重复注解与类型注解
0 条评论
下一页