接口的默认方法
Java8使用default向接口添加默认方法。
java8新特性
实现接口的其他方法后,default方法就可以直接使用
Lambda表达式
List<String>names=Arrays.asList("peter","anna","mike","xenia");
names.sort((a,b)->b.compareTo(a));//箭头前面是参数,后面是方法体
函数式接口
暂无
Lamda 表达式作用域
我们可以直接在 lambda 表达式中访问外部的局部变量,需满足一下条件:
- 变量为final类型
- 变量若不是final,lamda表达式以下未被修改值
lambda 表达式中无法访问默认方法
Streams
List和Set可用,Map不可用
- Filter(过滤)
stringList.stream()
.filter((s)->s.startswith("a"))
.forEach(System.out::print1n);
- Sorted(排序)
- Map(映射) map返回的Stream类型是根据你map传递进去的函数的返回值决定的
stringList.stream()
.map(String::toUpperCase)
.sorted((a,b)->b.compareTo(a))
.forEach(system.out::print1n);//这里的::表获取构造方法的引用
- Match(匹配)
- Count(计数)
- Reduce(规约)