欢迎访问宙启技术站
智能推送

JavaLambda函数的使用及示例

发布时间:2023-06-13 18:18:56

Java 8引入了Lambda表达式,使得Java语言在函数式编程方面有了重大改进,这让Java程序员能够更好地利用函数式编程的优点。Lambda表达式是一个匿名函数,它没有名称、修饰符和返回类型。Lambda表达式标志着Java 8语言中的一大飞跃——从句法冗长和繁琐的编程方式迈向简洁优雅的代码。

Lambda表达式基本语法:

(param1, param2, param3 ...) -> { statement1; statement2; ... }

其中,param是参数列表,->符号箭头是Lambda运算符,{}中是Lambda表达式体。

Lambda表达式的优点:

1. 代码更简洁。

2. 可以避免编写冗长的代码,如匿名内部类。

3. 支持函数式编程,如过滤、映射、归约等。

下面是一些Java Lambda表达式的示例:

1. 使用Lambda对字符串列表进行排序。

List<String> list = new ArrayList<String>();

list.add("apple");

list.add("banana");

list.add("orange");

Collections.sort(list, (s1, s2) -> s1.compareTo(s2));

System.out.println(list);

2. 使用Lambda对整数列表进行归约计算。

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

int sum = numbers.stream().reduce(0, (a, b) -> a + b);

System.out.println("The sum is " + sum);

int max = numbers.stream().reduce(0, (a, b) -> a > b ? a : b);

System.out.println("The max number is "  + max);

3. 使用Lambda过滤字符串列表中的元素。

List<String> words = Arrays.asList("apple", "banana", "cherry", "date");

List<String> filteredWords = words.stream().filter(s -> s.startsWith("a")).collect(Collectors.toList());

System.out.println(filteredWords);

4. 使用Lambda映射整数列表,将每个数字都乘以2。

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

List<Integer> mappedNumbers = numbers.stream().map(n -> n * 2).collect(Collectors.toList());

System.out.println(mappedNumbers);

5. 使用Lambda表达式实现Runnable接口。

Runnable r = () -> System.out.println("Hello World");

new Thread(r).start();

Java Lambda表达式是一种非常强大和灵活的语言工具。它可以提供简洁明了的代码,同时能够支持函数式编程的多种功能,如过滤、映射、归约等。Java Lambda表达式使Java在语言特性上得到了很大改进,使程序员在编写代码的过程中更加有效和灵活。