resultList.stream(). filter. filter能这样过滤嘛
时间: 2023-06-29 08:04:24 浏览: 58
是的,Java 8 中的 Stream API 提供了 filter() 方法,用于过滤集合中的元素。可以使用多个filter()方法进行连续过滤,例如:
```
resultList.stream()
.filter(result -> result.getScore() > 80)
.filter(result -> "Math".equals(result.getSubject()))
.forEach(System.out::println);
```
上面的代码会先过滤掉分数低于80的结果,然后再过滤掉科目不是数学的结果,最后输出符合条件的结果。
相关问题
resultList.stream().filter过滤非空及空字符串
你可以使用Java 8的Stream API中的filter()方法来过滤非空及空字符串。代码示例如下:
```
List<String> resultList = Arrays.asList("hello", "", "world", null, " ", "java");
List<String> filteredList = resultList.stream()
.filter(str -> str != null && !str.trim().isEmpty())
.collect(Collectors.toList());
System.out.println(filteredList); // Output: [hello, world, java]
```
在这个例子中,我们首先创建了一个包含字符串的列表,并且其中包含了一些空字符串、null值和只包含空格的字符串。然后,我们使用Stream API中的filter()方法,使用lambda表达式过滤掉了那些非空及空字符串。最后,我们使用collect()方法将过滤后的结果收集到一个新的列表中,并输出这个列表。
resultList.stream().filter(x->{过滤非空})
这段代码使用了 Java 8 中的 Stream API,对一个 List 集合进行过滤操作,保留其中非空的元素。
具体来说,`resultList.stream()` 将 List 转化为 Stream 对象,`filter` 方法接受一个 Predicate 函数式接口作为参数,该接口的实现决定了要保留哪些元素。在这里,传入的是一个 lambda 表达式 `x -> {过滤非空}`,其中 `x` 表示 Stream 中的每一个元素,大括号中的代码表示判断 x 是否为空,返回一个 boolean 值。最终,该方法返回一个新的 Stream 对象,其中仅包含原来 List 中非空的元素。
阅读全文