当需要对一个LIst进行判空操作时我们可使用如下两个语句:
if (list == null || list.size() == 0) {} if (list != null && list.size() != 0) {}
可能会有人疑问如果满足 list == null ,那么这个list不就为空了吗?为什么还要再使用另一个条件 list.size == 0 呢?
首先我们需要先弄懂这两个判断条件分别代表什么含义:
1. list == null :用于判断list有没有初始化,也就是list是否被赋为null,如 List list = null; ,满足该条件的话list中是没有数据的
2. list.size == 0 :用于判断list中是否有数据,满足该条件时list中也是没有数据的
如果只使用 list == null :一旦list进行了初始化 List list2 = new ArrayList(); ,此时list就不再为null了,但list内并没有数据。如果只使用 list == null 来判断是否为空的话,就会判断错误。
如果只使用 list .size == 0 :如果list并没有进行初始化,使用该条件时会报空指针错误,就无法达到判空的目的。因此在使用该条件时,一定要判断list是否进行了初始化
总结:
在对List进行判空时,需要使用两个条件:先使用 list == null判断list是否初始化后,再使用 list .size == 0判断是否为空。