JKD8的新特性——lambda的使用条件:函数式接口
Lambda表达式的本质是作为函数式接口的实现。
如果一个接口中只有一个抽象方法,那么此接口就被称为:函数式接口。
所以匿名实现类都可以用Lambda表达式来写。
java四大核心函数式接口
1. 消费型接口Consumer例子
12345678910111213141516171819public class LambdaTest2 {
@Test
public void test(){
//传统写法
happyTime(200d, new Consumer<Double>() {
@Override
public void accept(Double aDouble) {
System.out.println("学习使我快乐!"+aDouble);
}
});
System.out.println("------------------------------------------------");
//lambda表达式写法
happyTime(300d,money-> System.out.println("学习使我快乐"+money));
}
public void happyTime(double money, Consumer<Double> consumer){
consumer.accept(money);
}
}
2、断定型接口Predicate例子
12345678910111213141516@Test
public void test2(){
List<String> list= Arrays.asList("北京","南京","天津","东京","普京");
list=filter(list, s -> s.contains("京"));
System.out.println(list);
}
//根据给定的规则过滤指定的集合
public List<String> filter(List<String>list, Predicate<String> predicate){
ArrayList<String> filterStringList=new ArrayList<>();
for (String s:list){
if (predicate.test(s)){
filterStringList.add(s);
}
}
return filterStringList;
}
JKD8的新特性——方法引用
WIN10下Java环境变量配置
评论
即可发布评论!
文章28
分类5
标签2
博客之家
一个优雅的写作平台
一个优雅的写作平台