为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查数组是否为空/空?

/ 猿问

如何检查数组是否为空/空?

慕田峪9158850 2019-10-16 14:43:14

我有int没有元素的数组,我正在尝试检查它是否为空。


例如,为什么下面的代码中的if语句从不正确?


int[] k = new int[3];


if(k==null)

{

    System.out.println(k.length);

}


查看完整描述

3 回答

?
牧羊人nacy

null数组和空数组之间有一个关键的区别。这是对的测试null。


int arr[] = null;

if (arr == null) {

  System.out.println("array is null");

}

这里的“空”没有官方含义。我选择将空定义为具有0个元素:


arr = new int[0];

if (arr.length == 0) {

  System.out.println("array is empty");

}

如果所有元素都是,则“空”的另一种定义是null:


Object arr[] = new Object[10];

boolean empty = true;

for (int i=0; i<arr.length; i++) {

  if (arr[i] != null) {

    empty = false;

    break;

  }

}

要么


Object arr[] = new Object[10];

boolean empty = true;

for (Object ob : arr) {

  if (ob != null) {

    empty = false;

    break;

  }

}


查看完整回答
反对 回复 2019-10-16
?
Cats萌萌

ArrayUtils.isNotEmpty(testArrayName)从包中org.apache.commons.lang3确保Array不为null或为空


查看完整回答
反对 回复 2019-10-16
?
慕神8447489

我来自.net背景。但是,java / c#基本相同。


如果您实例化非基本类型(在您的情况下为数组),则该类型不会为null。

例如,int[] numbers = new int[3];

在这种情况下,将分配空间且每个元素的默认值为0。


这将是null,当你做不new起来。

例如


int[] numbers = null; // changed as per @Joachim's suggestion.

if (numbers == null)

{

   System.out.println("yes, it is null. Please new it up");

}


查看完整回答
反对 回复 2019-10-16

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信