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把键存起来再进行移除,虽然有点绕,但工具方法嘛 以后可以直接使用
结果:
我这个是最笨的方法,不知道有没有大神有好一点的方法,求留言。求指教。