84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
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
ringa_lee
if(map.get(a)==null)不就可以判断它是不是空吗
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))
apache common
CollectionUtils.isEmpty(map.get(a))
如果一个 ArrayList 已经实例化,那肯定不等于 null 了。既然可以执行 toString 方法而不报错,肯定是实例化过的。因为 toString 是顶级父类 Object 的方法,没有实例化的对象怎么可能有这个方法。
ArrayList list = new ArrayList(); System.out.println(list == null); // false ArrayList list1 = null; System.out.println(list1.toString()); // 空指针
你打印出来的结果a**[]可以看出来map.get(a).toString()不是空字符串,而是[],因此"[]".equals("")始终为false
a**[]
map.get(a).toString()
[]
"[]".equals("")
如果map.get(a).toString()没抛空指针异常,那么map.get(a)必定是非空的
map.get(a)
如果key对应的值始终是ArrayList,那么可以用以下方法:
map.get(a) == null || map.get(a).isEmpty()
if(map.get(a)==null)
不就可以判断它是不是空吗在java里null与空数组不是同一个概念。如果要判断数组是否为空,可以这样写。
`
if (map.get(a) == null || map.get(a).size() == 0)
`
如果一个 ArrayList 已经实例化,那肯定不等于 null 了。
既然可以执行 toString 方法而不报错,肯定是实例化过的。因为 toString 是顶级父类 Object 的方法,没有实例化的对象怎么可能有这个方法。
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,那么可以用以下方法: