代码之家  ›  专栏  ›  技术社区  ›  Ankit Sachan

如何检查数组是否为空?

  •  104
  • Ankit Sachan  · 技术社区  · 16 年前

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

    int[] k = new int[3];
    
    if (k == null) {
        System.out.println(k.length);
    }
    
    11 回复  |  直到 6 年前
        1
  •  0
  •   saravana kumar ramasamy    5 年前

    两种方法之间有一个关键的区别 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");
    }
    

    “空”的另一种定义是如果所有元素 无效的

    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;
      }
    }