8.3笔记

一、新特性

jdk1.8接口内容新增

1)静态方法

跟随接口名使用

2)默认方法:显示通过default修饰的方法

可以在实现类中重写

跟随实现类对象调用

jdk1.9新增

私有方法:被ptivate修饰

只能在接口中被默认方法调用

不能被外部类中使用

二、Stream

Stream流:jdk1.8的重点新特性

IO流:关注数据的存传输

数组|集合:关注数据的存储

Stream流:关注数据的运算

将由数据源产生的元素序列进行流式运算

使用步骤:

1.获取创建Stream流

2.一系列流式中间操作

3.终止行为

特点:

1.Stream本身不存储数据

2.Stream的运算不影响数据源

3.所有中间操作都返回持有结果的新的流

4.流是一次性的流,一旦已经使用就被破坏,无法重复使用多次

5.延迟执行|惰性加载:当获取终止行为的时候所有的中间操作才会执行

获取Stream的方式:

1.Collection-->stream()

2.Arrays.stream()

3.Stream.of(...)

Stream中间操作:

1.过滤 <T> filteer(Predicate<? super T> predicate) 返回由与给定谓词匹配的次流的元素组成的流

2.截取 Stream<T> limit(long maxSize) 返回由该流的元素组成的流,长度被截断为不超过maxSize

3.跳过 Stream<T> skip(long n) 在丢弃流的前n元素后,返回由该流的剩余元素组成的流

4.去重 Stream<T> distinct() 返回由该流的不同元素(根据Object.equals(Object))组成的流

equals与hashCode方法,需要根据内容重写

5.排序 Stream<T> sorted() 返回由该流的元素组成的流,按自然顺序排序

Stream<T> sorted(Comparator<? super T> comparator) 返回由该流的元素组成的流,根据提供

的Comparator排序

三、函数式接口

java.util.function下的函数式接口

四大内置函数接口:
1.消费型接口

Consumer<T>

void accept(T t)

2.函数式接口

Function<T,R>

R apply(T t)

3.断言型接口

Predicate<T>

boolean test(T t)

4.供给型接口

Supplier<T>

T get()

四、方法引用 : 理解

Lambda表达式:将行为作为参数传递-->函数式编程

如果形参|引用为函数式接口类型,实参|赋值就可以为Lambda表达式

方法引用是用来简化Lambda表达式的

是Lambda表达式的另外一种表现形式

简化条件要求:必须满足以下两条件

1.当lambda体{}中的实现就是通过调用另外一个方法来实现的,可以考虑是否可以通过方法引用简化

  1. a)当lambda参数列表,返回值与内部引用方法的参数列表与返回值保持一致的时候--->对象 : : 成员方

  2. 法|类名 : : 静态方法

b)内部所引用方法的返回值与lambda表达式的返回值一致,lambda参数列表的第一个参数作为调用方

法内部的对象,lambda参数列表的第二个参数开始匹配内部引用方法参数列表---->类名 : : 成员方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值