猿问

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

System.out.println("a**"+map.get(a).getClass());
System.out.println("a**"+map.get(a));

-------------分割线------------
a**class java.util.ArrayList
a**[]

以上是控制台打印出来的东西。

map.get(a).toString().equals("");一直是false
map.get(a)!=null;一直是true


蝴蝶不菲
浏览 7494回答 4
4回答

侃侃无极

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

不负相思意

在java里null与空数组不是同一个概念。如果要判断数组是否为空,可以这样写。`if (map.get(a) == null || map.get(a).size() == 0)`如果是生产环境下,建议使用工具类,例如apache common或者spring都提供CollectionUtils.isEmpty(map.get(a))

慕田峪9158850

如果一个 ArrayList 已经实例化,那肯定不等于 null 了。既然可以执行 toString 方法而不报错,肯定是实例化过的。因为 toString 是顶级父类 Object 的方法,没有实例化的对象怎么可能有这个方法。ArrayList list = new ArrayList();System.out.println(list == null);  // falseArrayList list1 = null;System.out.println(list1.toString()); // 空指针

函数式编程

map.get(a).toString().equals("");一直是false你打印出来的结果a**[]可以看出来map.get(a).toString()不是空字符串,而是[],因此"[]".equals("")始终为falsemap.get(a)!=null;一直是true如果map.get(a).toString()没抛空指针异常,那么map.get(a)必定是非空的判断空如果key对应的值始终是ArrayList,那么可以用以下方法:map.get(a) == null || map.get(a).isEmpty()
随时随地看视频慕课网APP

相关分类

Java
我要回答