Java 检查列表是否为空的两种方法-差异?
我有一个简短的问题 假设我们有一个名为Java 检查列表是否为空的两种方法-差异?,java,list,Java,List,我有一个简短的问题 假设我们有一个名为List的ArrayList。我们要检查列表是否为空 以下各项之间有什么区别(如果有): 及 我正在编写一个古老的代码(2007年左右由其他人编写),它使用list==null结构。但是,当我们有list.isEmpty()method…时,为什么要使用这个结构呢?第一个结构告诉您list变量是否被分配了一个列表实例 第二个命令告诉您List变量引用的列表是否为空。 如果list为空,第二行将抛出NullPointerException 如果您只想在列表为空
List
的ArrayList
。我们要检查列表是否为空
以下各项之间有什么区别(如果有):
及
我正在编写一个古老的代码(2007年左右由其他人编写),它使用
list==null
结构。但是,当我们有list.isEmpty()
method…时,为什么要使用这个结构呢?第一个结构告诉您list
变量是否被分配了一个列表实例
第二个命令告诉您List
变量引用的列表是否为空。
如果list
为空,第二行将抛出NullPointerException
如果您只想在列表为空时执行某些操作,则更安全的做法是:
if (list != null && list.isEmpty()) { do something }
如果要在列表为null或空时执行某些操作,可以编写:
if (list == null || list.isEmpty()) { do something }
if (list != null && !list.isEmpty()) { do something }
如果要在列表不为空的情况下执行某些操作,可以编写:
if (list == null || list.isEmpty()) { do something }
if (list != null && !list.isEmpty()) { do something }
if(list==null)
检查列表是否为null
如果(list.isEmpty())
检查列表是否为空,如果列表为null
并且您调用isEmpty()
它将为您提供NullPointerException
最好先检查列表是否为空,然后检查是否为空
if(list !=null && ! list.isEmpty()){
// do your code here
}
另一种方法是使用
看看这个方法。它更简洁。如果/当您更改此项时,请小心-列表可以初始化并为空-但是如果您在空列表上尝试list.isEmpty(),您将得到一个NullPointerException。“但是当我们有
list.isEmpty()
方法时,为什么要使用此构造…”,因为如果您使用list.isEmpty()
对于list
变量,如果list==null
为true,它将抛出NullPointerException
。这两种检查从根本上完全不同。您可以添加第三种方法;-)@劳恩:当然,为什么不呢?:)