java map 空值_Java map去空值

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

0818b9ca8b590ca3270a3433284dd417.png

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

0818b9ca8b590ca3270a3433284dd417.png

拿到以后要去进行查询,那么蛋疼的事就来了 各种判断要上,如果查询条件多的话那就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把键存起来再进行移除,虽然有点绕,但工具方法嘛 以后可以直接使用

结果:

0818b9ca8b590ca3270a3433284dd417.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值