filter中写非空判断表达式
时间: 2023-07-08 10:30:19 浏览: 112
在 JDK 8 的 Filter 接口中,可以使用 lambda 表达式实现非空判断。下面是一个示例代码:
```java
List<String> list = Arrays.asList("apple", "banana", null, "orange", "");
List<String> filteredList = list.stream()
.filter(s -> s != null && !s.isEmpty())
.collect(Collectors.toList());
System.out.println(filteredList);
```
在上面的示例代码中,我们首先创建了一个包含 null 和空字符串的字符串列表。然后使用 `stream()` 方法将其转换为一个流,并使用 `filter()` 方法过滤掉 null 和空字符串。在 `filter()` 方法中,我们使用 lambda 表达式 `s -> s != null && !s.isEmpty()`,其中 `s` 表示流中的元素,`s != null` 表示判断元素是否为 null,`!s.isEmpty()` 表示判断元素是否为空字符串。最后使用 `collect()` 方法将过滤后的元素收集到一个列表中,并输出结果。
注意:在 lambda 表达式中,需要使用 `!=` 来判断元素是否为 null,因为 `!` 操作符不能应用于 null 值。
相关问题
python中filter()设置非空查询
可以使用lambda表达式在filter()函数中过滤掉空值。例如:
```
list_data = ["", "hello", "", "world", "", " "]
result = list(filter(lambda x: x != "", list_data))
print(result)
```
输出为:
```
['hello', 'world', ' ']
```
在lambda表达式中,我们使用条件 x != "" 来判断元素是否为空,并将满足条件的元素保留下来。最终使用filter()函数将符合条件的元素组成一个新的列表返回。
resultList.stream().filter(x->{过滤非空})
这段代码使用了 Java 8 中的 Stream API,对一个 List 集合进行过滤操作,保留其中非空的元素。
具体来说,`resultList.stream()` 将 List 转化为 Stream 对象,`filter` 方法接受一个 Predicate 函数式接口作为参数,该接口的实现决定了要保留哪些元素。在这里,传入的是一个 lambda 表达式 `x -> {过滤非空}`,其中 `x` 表示 Stream 中的每一个元素,大括号中的代码表示判断 x 是否为空,返回一个 boolean 值。最终,该方法返回一个新的 Stream 对象,其中仅包含原来 List 中非空的元素。
阅读全文