2021-07-02 写个Map去除key值,value值为null的工具类吧

该博客介绍了两个Java方法,用于从Map中删除键或值为null或空字符串的条目。`removeNullEntry`方法删除值为null的键值对,而`removeNullEmptyEntry`方法进一步处理值为空字符串的情况。这两个方法通过遍历Map的EntrySet,收集要移除的键,并最终从Map中移除它们,提高数据清理的效率。

需要做md5校验,空值去掉比较方便。
public class MapUtil {

public static <K, V> void removeNullEntry(Map<K, V> map){
	//删除key为null
	map.remove(null);
	List<K> list = new ArrayList<>();
	for(Map.Entry<K, V> entry : map.entrySet()) {
		K key = entry.getKey();
		V value = entry.getValue();
		if (value == null) list.add(key);
	}
	if (list.isEmpty()) return;
	for (K key : list) {
		map.remove(key);
	}
}

//去除null值,空值
public static <K, V> void removeNullEmptyEntry(Map<K, V> map){
	//删除key为null
	map.remove(null);
	List<K> list = new ArrayList<>();
	for(Map.Entry<K, V> entry : map.entrySet()) {
		K key = entry.getKey();
		V value = entry.getValue();
		if (value == null || StringUtils.isEmpty(value.toString())) list.add(key);
	}
	if (list.isEmpty()) return;
	for (K key : list) {
		map.remove(key);
	}
}

}

可以使用 Java 8 的 Stream API 来过滤 Mapnull 的键对,示例代码如下: ```java import java.util.HashMap; import java.util.Map; import java.util.stream.Collectors; public class MapUtil { public static <K, V> Map<K, V> filterNullValues(Map<K, V> map) { return map.entrySet() .stream() .filter(e -> e.getValue() != null) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); } } ``` 在上述代码中,定义了一个 MapUtil 工具类,其中的 filterNullValues 方法用于过滤 Mapnull 的键对。该方法使用 Java 8 的 Stream API 将 Map 转换成一个流,然后使用 filter 方法过滤null 的键对,最后使用 collect 方法将过滤后的结果转换成 Map 对象并返回。 使用该工具类的示例如下: ```java import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { // 创建一个 Map 对象 Map<String, Object> map = new HashMap<>(); map.put("name", "张三"); map.put("age", 18); map.put("address", null); // 使用 MapUtil.filterNullValues 方法过滤null 的键Map<String, Object> filteredMap = MapUtil.filterNullValues(map); // 输出过滤后的 Map 对象 System.out.println(filteredMap); // 输出:{name=张三, age=18} } } ``` 在上述代码中,首先创建一个 Map 对象,其中包含了一个null 的键对。然后使用 MapUtil.filterNullValues 方法过滤null 的键对,并将过滤后的 Map 对象输出。最终输出的结果为 `{name=张三, age=18}`,null 的键对已经被过滤掉了。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值