map如何剔除空值stream
时间: 2025-01-28 16:52:04 浏览: 78
### 使用 Java Stream API 移除 Map 中的空值
当处理 `Map` 类型的数据结构并希望移除非空条目时,可以利用 Java 的 Stream API 来简化操作。通过将 `Map` 转换为流的形式,应用过滤器去除键对应的值为空的情况,最后收集回一个新的映射。
下面是具体实现方法:
```java
import java.util.*;
import java.util.stream.*;
public class RemoveNullValuesFromMap {
public static void main(String[] args) {
// 创建带有若干null值的初始map对象
Map<String, String> originalMap = new HashMap<>();
originalMap.put("key1", "value1");
originalMap.put("key2", null);
originalMap.put("key3", "value3");
originalMap.put("key4", null);
System.out.println("Original Map: " + originalMap);
// 利用Stream API 过滤掉 value 为 null 的项,并重新构建新的HashMap
Map<String, String> filteredMap = originalMap.entrySet()
.stream()
.filter(entry -> entry.getValue() != null)
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
System.out.println("Filtered Map without null values: " + filteredMap);
}
}
```
这段代码展示了如何使用 Lambda 表达式配合 Stream API 对 `Map` 执行筛选操作[^2]。这里的关键在于调用了 `entrySet()` 方法获取到所有的键值对集合,接着转换成流形式以便于后续的操作;之后定义了一个简单的谓词逻辑用于判断哪些元素应该被保留下来——即那些其关联的值不是 `null` 的键值对;最终采用 `Collectors.toMap()` 函数把经过过滤后的数据再次组装成为一个全新的不可变哈希表实例返回给变量 `filteredMap`。
阅读全文
相关推荐


















