JavaLambda函数的使用及示例
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在语言特性上得到了很大改进,使程序员在编写代码的过程中更加有效和灵活。
