java linq 关于常用list的表达式

在Java中,LINQ(Language-Integrated Query)并非原生支持,而是主要与C#相关。然而,Java 8引入了Stream API,这是一种功能相似的概念,允许通过lambda表达式进行集合操作,类似于LINQ。虽然Java Stream API不如LINQ灵活,但可以实现很多相似的功能。

以下是一些在Java中使用Stream API进行集合操作的常见表达式,类似于LINQ:

1. 筛选数据(类似于Where):
   java
   List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
   List<String> result = names.stream()
                             .filter(name -> name.length() > 3)
                             .collect(Collectors.toList());
   

2. 映射数据(类似于Select):
   java
   List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
   List<Integer> nameLengths = names.stream()
                                   .map(String::length)
                                   .collect(Collectors.toList());
   

3. 排序数据(类似于OrderBy):
   java
   List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
   List<String> sortedNames = names.stream()
                                  .sorted()
                                  .collect(Collectors.toList());
   

4. 分组数据(类似于GroupBy):
   java
   List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
   Map<Integer, List<String>> groupedByLength = names.stream()
                                                     .collect(Collectors.groupingBy(String::length));
   

5. 求和、平均值等(类似于Sum, Average):
   java
   List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
   int sum = numbers.stream().mapToInt(Integer::intValue).sum();
   double average = numbers.stream().mapToDouble(Integer::doubleValue).average().orElse(0);
   

6. 查找第一个符合条件的元素(类似于First):
   java
   List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
   String firstMatch = names.stream()
                            .filter(name -> name.startsWith("C"))
                            .findFirst()
                            .orElse(null);
   

7. 合并多个集合(类似于Concat):
   java
   List<String> list1 = Arrays.asList("Alice", "Bob");
   List<String> list2 = Arrays.asList("Charlie", "David");
   List<String> mergedList = Stream.concat(list1.stream(), list2.stream())
                                   .collect(Collectors.toList());
   

这些示例演示了如何使用Java Stream API执行一些常见的集合操作,类似于LINQ的功能。这样的表达式能够提高代码的简洁性和可读性,并通过lambda表达式提供更灵活的操作。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值