【java】四大函数式接口
狂神老师的视频地址:https://space.bilibili.com/95256449
新时代的程序员:lambda表达式、链式编程、函数式接口、Stream流式计算
1、 四大函数式接口
用来简化编程
- 函数式接口: 只有一个方法的接口
两个参数一个是输入值,一个是返回值
public class Main {
interface TestLambda {
void run();
}
public static void main(String[] args) {
TestLambda testLambda;
testLambda = ()->{
System.out.println("lambda");
};
testLambda.run();
}
}
- 断定型接口
- 消费型接口
- 供给型接口
2、Stream流计算
/*
* 一行代码搞定筛选用户中id为奇数,id大于1,并且输出用户名大写,正序,限定输出一个
*
* */
public class TestStream {
public static void main(String[] args) {
User u1 = new User(1, "a");
User u2 = new User(2, "b");
User u3 = new User(3, "c");
User u4 = new User(4, "d");
//存储交给集合
List<User> list = Arrays.asList(u1, u2, u3, u4);
//计算交给流
list.stream()
.filter(u -> { return u.getId() % 2 != 0; })
.filter(u -> { return u.getId() > 1; })
.map(u -> { return u.getName().toUpperCase(); })
.sorted((uu1, uu2) -> { return uu1.compareTo(uu2); })
.limit(1)
.forEach(System.out::println);
}
}
这样的代码格式也就是链式编程,里面底层都是函数式接口。