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

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

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

慕田峪9158850 2019-10-16 14:43:14
我有int没有元素的数组,我正在尝试检查它是否为空。例如,为什么下面的代码中的if语句从不正确?int[] k = new int[3];if(k==null){    System.out.println(k.length);}
查看完整描述

3 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

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
?
慕神8447489

TA贡献1780条经验 获得超1个赞

我来自.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
  • 3 回答
  • 0 关注
  • 665 浏览

添加回答

举报

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