为了账号安全,请及时绑定邮箱和手机立即绑定

怎么判断map key对应的值是不是空的

怎么判断map key对应的值是不是空的

蝴蝶不菲 2019-03-19 17:18:36
System.out.println("a**"+map.get(a).getClass());System.out.println("a**"+map.get(a));-------------分割线------------a**class java.util.ArrayLista**[]以上是控制台打印出来的东西。map.get(a).toString().equals("");一直是falsemap.get(a)!=null;一直是true
查看完整描述

4 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

if(map.get(a)==null)不就可以判断它是不是空吗


查看完整回答
反对 回复 2019-04-19
?
不负相思意

TA贡献1777条经验 获得超10个赞

在java里null与空数组不是同一个概念。如果要判断数组是否为空,可以这样写。

`
if (map.get(a) == null || map.get(a).size() == 0)
`

如果是生产环境下,建议使用工具类,例如apache common或者spring都提供CollectionUtils.isEmpty(map.get(a))


查看完整回答
反对 回复 2019-04-19
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

如果一个 ArrayList 已经实例化,那肯定不等于 null 了。

既然可以执行 toString 方法而不报错,肯定是实例化过的。因为 toString 是顶级父类 Object 的方法,没有实例化的对象怎么可能有这个方法。


ArrayList list = new ArrayList();

System.out.println(list == null);  // false


ArrayList list1 = null;

System.out.println(list1.toString()); // 空指针


查看完整回答
反对 回复 2019-04-19
?
函数式编程

TA贡献1807条经验 获得超9个赞

map.get(a).toString().equals("");一直是false

你打印出来的结果a**[]可以看出来map.get(a).toString()不是空字符串,而是[],因此"[]".equals("")始终为false

map.get(a)!=null;一直是true

如果map.get(a).toString()没抛空指针异常,那么map.get(a)必定是非空的

判断空

如果key对应的值始终是ArrayList,那么可以用以下方法:

map.get(a) == null || map.get(a).isEmpty()


查看完整回答
反对 回复 2019-04-19
  • 4 回答
  • 0 关注
  • 7490 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号