84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
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,那么可以用以下方法: