Java Lambda 表达式详解:多个例子生动解释
Java 的 lambda 表达式是 Java 8 引入的一种函数式编程特性,它可以将函数作为参数传递给其他方法,或者在方法中返回一个函数。Lambda 表达式可以简化代码并增加代码的可读性。
下面是几个例子,用于生动详细解释说明什么是 Java 的 lambda 表达式:
- 使用 lambda 表达式实现 Runnable 接口:
Runnable runnable = () -> {
System.out.println('Running in a separate thread');
};
Thread thread = new Thread(runnable);
thread.start();
在这个例子中,lambda 表达式被用作 Runnable 接口的实现,它可以在一个新的线程中运行。lambda 表达式的箭头(->)表示参数和函数体之间的关系。
- 使用 lambda 表达式对列表进行筛选:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers);
在这个例子中,lambda 表达式被用作 filter 方法的参数,它筛选出列表中的偶数。lambda 表达式的参数 n 表示列表中的每个元素。
- 使用 lambda 表达式对列表进行排序:
List<String> names = Arrays.asList('John', 'Alice', 'Bob', 'David');
Collections.sort(names, (a, b) -> a.compareTo(b));
System.out.println(names);
在这个例子中,lambda 表达式被用作 Comparator 接口的实现,它对列表中的元素进行排序。lambda 表达式的参数 a 和 b 表示列表中的两个元素。
- 使用 lambda 表达式对列表进行映射:
List<String> names = Arrays.asList('John', 'Alice', 'Bob', 'David');
List<Integer> nameLengths = names.stream()
.map(name -> name.length())
.collect(Collectors.toList());
System.out.println(nameLengths);
在这个例子中,lambda 表达式被用作 map 方法的参数,它将列表中的每个元素映射为其长度。lambda 表达式的参数 name 表示列表中的每个元素。
这些例子展示了 lambda 表达式在不同场景下的应用,它们可以简化代码并提高可读性。通过 lambda 表达式,Java 可以更加灵活地处理函数式编程的需求。
原文地址: https://www.cveoy.top/t/topic/pVgT 著作权归作者所有。请勿转载和采集!