Java中的Lambda表达式是Java 8引入的一个重要特性,它提供了一种更简洁的语法来表示匿名函数。Lambda表达式通常用于函数式接口(Functional Interface)的实例化,这些接口只包含一个抽象方法。
下面是Lambda表达式的基本语法:
(parameters) -> expression
或者
(parameters) -> { statements; }
以下是Lambda表达式的一些用法:
1. 基本语法:
// 无参数,无返回值
() -> System.out.println("Hello, Lambda!");
// 有一个参数,无返回值
(name) -> System.out.println("Hello, " + name);
// 有多个参数,有返回值
(a, b) -> a + b
2. 函数式接口的使用:
Lambda表达式通常用于函数式接口,例如Runnable、Callable、Comparator等。
// 使用Lambda表达式实现Runnable接口
Runnable runnable = () -> System.out.println("Running in a separate thread");
new Thread(runnable).start();
3. List的遍历:
List<String> myList = Arrays.asList("Apple", "Banana", "Orange");
// 使用Lambda表达式遍历List
myList.forEach(item -> System.out.println(item));
4. 使用Predicate过滤集合:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 使用Lambda表达式过滤集合
numbers.stream().filter(n -> n % 2 == 0).forEach(System.out::println);
5. 使用Comparator排序集合:
List<String> names = Arrays.asList("John", "Alice", "Bob", "Eve");
// 使用Lambda表达式进行字符串排序
names.sort((a, b) -> a.compareTo(b));
Lambda表达式的引入使得代码更为简洁,特别是在处理集合、多线程等场景时。请注意,Lambda表达式只能用于函数式接口,即接口中只有一个抽象方法的情况