天天看點

java map 空值_Java map去空值

map是可以包含 null 和 "" 的,有時候要判斷空超麻煩,最近項目中要拿到多個查詢條件去資料庫中查詢,是以拼接的時候要判斷他們是否為空,具體看如下代碼

java map 空值_Java map去空值

從前端拿到需要查詢的條件

java map 空值_Java map去空值

拿到以後要去進行查詢,那麼蛋疼的事就來了 各種判斷要上,如果查詢條件多的話那就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把鍵存起來再進行移除,雖然有點繞,但工具方法嘛 以後可以直接使用

結果:

java map 空值_Java map去空值

我這個是最笨的方法,不知道有沒有大神有好一點的方法,求留言。求指教。