一尘不染

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

java

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

例如,为什么下面代码中的if语句的条件永远不会为真?

int[] k = new int[3];

if (k == null) {
    System.out.println(k.length);
}

阅读 1293

收藏
2020-03-17

共1个答案

一尘不染

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

int arr[] = null;
if (arr == null) {
  System.out.println("array is null");
}

“Empty”在这里没有官方含义。我选择将空定义为具有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;
  }
}
2020-03-17