map是可以包含 null 和 "" 的,有時候要判斷空超麻煩,最近項目中要拿到多個查詢條件去資料庫中查詢,是以拼接的時候要判斷他們是否為空,具體看如下代碼
從前端拿到需要查詢的條件
拿到以後要去進行查詢,那麼蛋疼的事就來了 各種判斷要上,如果查詢條件多的話那就gg了,是以我就想到用map吧鍵值轉過來 然後使用下列方法吧空值移除後再進行sql 拼接,這樣就簡單了許多
工具方法如下:
Map map =new HashMap();
List 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 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 entry : map.entrySet()) {
System.out.println(entry.getKey()+"--->"+entry.getValue());
}這裡不能直接在for循環裡面直接移除會報錯,隻能用個list把鍵存起來再進行移除,雖然有點繞,但工具方法嘛 以後可以直接使用
結果:
我這個是最笨的方法,不知道有沒有大神有好一點的方法,求留言。求指教。