Java map去空值

map是可以包含 null 和 “” 的,有时候要判断空超麻烦,最近项目中要拿到多个查询条件去数据库中查询,所以拼接的时候要判断他们是否为空,具体看如下代码

从前端拿到需要查询的条件

拿到以后要去进行查询,那么蛋疼的事就来了 各种判断要上,如果查询条件多的话那就gg了,所以我就想到用map吧键值转过来 然后使用下列方法吧空值移除后再进行sql 拼接,这样就简单了许多

工具方法如下:

Map<String, String> map =new HashMap<String, String>();
		List<String> list = new ArrayList<>();
		map.put("y", "abc");
		map.put("z", "abv");
		map.put("zz", null);
		map.put("yy", "");
		System.out.println(map.size());
		//遍历map 
		for(Map.Entry<String, String> entry : map.entrySet()) {
			System.out.println(entry.getKey()+"--->"+entry.getValue());
            if(map.get(entry.getKey())!=null){  
	            if(!"".equals(map.get(entry.getKey()))){  
//	                return (String)map.get(entry.getKey());  
	            }else{  
	            	list.add(entry.getKey());
//	                map.remove(entry.getKey()); 
	            }  
	        }else{  
	        	list.add(entry.getKey());
	        	// map2.remove(entry.getKey()); 
	        }  
        }
		
		for (int i = 0; i < list.size(); i++) {
			map.remove(list.get(i));
		}
		System.out.println("去空值以后:"+map.size());
		for(Map.Entry<String, String> entry : map.entrySet()) {
			System.out.println(entry.getKey()+"--->"+entry.getValue());
        }

这里不能直接在for循环里面直接移除会报错,只能用个list把键存起来再进行移除,虽然有点绕,但工具方法嘛 以后可以直接使用

结果:

我这个是最笨的方法,不知道有没有大神有好一点的方法,求留言。求指教。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值