如何检查一个空数组java

时间:2016-01-18 04:09:22

标签: java arrays

我想知道这段代码是否有效用于检查数组是否为空,或者我应该检查是否为null?

if(arrayName={})
  System.out.println("array empty");
else System.out.println("array not empty");

谢谢!

6 个答案:

答案 0 :(得分:6)

在数组类中,我们有一个定义为“length”的静态变量,它保存数组对象中的元素数。您可以使用它来查找长度:

if(arrayName.length == 0)
  System.out.println("array empty");
else 
  System.out.println("array not empty");

答案 1 :(得分:5)

我会考虑通过从这里添加Apache Commons Lang来使用ArrayUtils.is为空http://commons.apache.org/proper/commons-lang/download_lang.cgi

最大的好处是,它将以干净且易于阅读的方式为您检查数组。

然后你可以这样做:

if (ArrayUtils.isEmpty(arrayName) {
    System.out.printLn("Array empty");
} else {
    System.out.printLn("Array not empty");
}

答案 2 :(得分:0)

不,因为数组文字不能那样工作。将arrayName={}替换为arrayName.length==0,它应该有效。

答案 3 :(得分:0)

要检查空的尝试,请执行以下操作:

if (arr.length == 0) {
 System.out.println("array is empty");
}

答案 4 :(得分:0)

如其他答案所示,length的{​​{1}}属性将给出数组的长度。但是,在对数组执行任何操作之前,始终建议检查数组是否为Array,否则如果数组为null则会抛出NullPointerException

null

答案 5 :(得分:0)

proudandhonour的回答是在正确的轨道上,但不适用于if (req.session.auth !== 'admin') { // res.redirect('/'); } 的所有可能值,特别是arrayName尚未定义且arrayName的情况。在这种情况下,代码:

null

将失败并且if(arrayName.length == 0) System.out.println("array empty"); else System.out.println("array not empty"); TimeTravel的答案正确测试此案例并正确处理NullPointerException.的所有可能值。唯一的缺点是他的代码比它需要的更冗长。

Java提供布尔表达式的短路评估。具体而言,arrayName的结果为(false && xx) false的所有可能值。因此,在计算布尔xx运算符的第一个操作数时,如果第一个操作数的计算结果为false,则JVM将忽略第二个操作数。

利用这个,我们可以写:

&&

还有三元运算符,它提供了一种内联if-then-else表达式的机制。在某些情况下,这可以提高可读性:

if (arrayName != null && arrayName.length > 0)
    { System.out.println("The array length > 0"); }
else
    { System.out.println("The array is null or empty"); }