lambda 函数式接口
时间: 2024-08-17 22:03:20 浏览: 52
java8新特性包含 lambda 函数式接口,stream 流
Lambda函数式接口是Java 8引入的一种新特性,它是Java语言中的一个接口,只包含一个抽象方法。这种接口特别适合配合Java的Stream API或者其他函数式编程场景使用,它们允许程序员直接将代码块作为方法的值传递,而不是定义完整的匿名内部类,这样使得代码更加简洁,易于理解。
在Java中,只要一个接口只有一个抽象方法,那么就可以标记为`@FunctionalInterface`注解,表明这是一个函数式接口。使用lambda表达式时,可以直接写入接口方法体,而无需定义一个具体的类或实现类。
例如,假设有一个`Comparator`接口:
```java
@FunctionalInterface
interface Comparator<T> {
int compare(T t1, T t2);
}
```
你可以像下面这样使用lambda表达式:
```java
List<String> list = Arrays.asList("apple", "banana", "cherry");
Collections.sort(list, (a, b) -> a.compareTo(b));
```
这里`(a, b) -> a.compareTo(b)`就是一个lambda表达式,它实现了`Comparator`接口并比较两个字符串。
阅读全文