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