在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表达式提供更灵活的操作。
java linq 关于常用list的表达式
最新推荐文章于 2025-04-12 09:50:22 发布