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把键存起来再进行移除,虽然有点绕,但工具方法嘛 以后可以直接使用

结果:

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


版权声明:本文为u010982856原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。