Java 8 Lambda表达式:基本语法及在集合中的应用

本文介绍了Lambda表达式的基本语法,并详细展示了其在Java集合中的应用,包括过滤、映射、排序、聚合、收集不同类型数据及查找元素,强调了其在简化和提升代码可读性方面的优势。
摘要由CSDN通过智能技术生成

目录

Lambda表达式的基本语法

lambda表达式在集合中的应用


Lambda表达式的基本语法

(参数列表) -> { 函数体 }

其中:

  • 参数列表:包含Lambda表达式的参数。如果参数只有一个,则括号可以省略。如果参数没有,则必须保留空括号。
  • ->:Lambda操作符,用于分隔参数列表和函数体。
  • 函数体:包含Lambda表达式要执行的代码。

lambda表达式在集合中的应用

与Stream API的结合使得集合操作变得更加简洁和函数式。以下是一些lambda表达式在集合中的常见应用:

1. 过滤元素(Filtering):使用filter方法,可以根据某个条件过滤集合中的元素。

List<String> strings = Arrays.asList("Apple", "Banana", "Cherry", "Date");  
List<String> filteredStrings = strings.stream()  
    .filter(s -> s.startsWith("A"))  
    .collect(Collectors.toList());  
// filteredStrings 现在包含 "Apple" 和 "Apple"

2. 映射元素(Mapping):使用map方法,可以将集合中的元素转换成另一种形式。

List<String> strings = Arrays.asList("1", "2", "3");  
List<Integer> numbers = strings.stream()  
    .map(Integer::parseInt)  //将每个字符串转换为整数
    .collect(Collectors.toList());  
// numbers 现在包含 1, 2, 3

3. 排序元素(Sorting):使用sorted方法,可以对集合中的元素进行排序。

List<String> strings = Arrays.asList("Banana", "Apple", "Cherry");  
List<String> sortedStrings = strings.stream()  
    .sorted()  
    .collect(Collectors.toList());  
// sortedStrings 现在按字母顺序排序

4. 聚合操作(Aggregation):使用reduce方法,可以对集合中的元素进行聚合操作,如求和、求最大值等。

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);  
Integer sum = numbers.stream()  
    .reduce(0, Integer::sum);  
// sum 现在是 15

5. 收集到不同的集合类型(Collecting to Different Types):使用collect方法,可以将流中的元素收集到不同的集合类型中。

List<String> strings = Arrays.asList("Apple", "Banana", "Cherry");  
Set<String> uniqueStrings = strings.stream()  
    .collect(Collectors.toSet());  
// uniqueStrings 现在包含唯一的字符串

6. 查找元素(Finding Elements):使用findAny或findFirst方法,可以查找流中的元素。

List<String> strings = Arrays.asList("Apple", "Banana", "Cherry");  
Optional<String> firstString = strings.stream()  
    .findFirst();  
// firstString 现在包含 "Apple"

7. 去除重复元素(Removing Duplicates):使用distinct方法,可以去除流中的重复元素。

List<Integer> numbers = Arrays.asList(1, 2, 2, 3, 4, 4, 5);  
List<Integer> uniqueNumbers = numbers.stream()  
    .distinct()  
    .collect(Collectors.toList());  
// uniqueNumbers 现在包含唯一的数字

Lambda表达式和Stream API的结合使得集合操作更加声明式、简洁和易于理解。通过使用这些高级功能,你可以更加有效地处理集合数据,减少模板代码,并写出更加清晰和可维护的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值