如何在 Java 中檢查一個陣列是否為空

Mohammad Irfan 2023年10月12日
  1. Java 中的空陣列
  2. 陣列包含空值
  3. Java 中的空陣列
  4. 在 Java 中使用 Apache Commons 庫檢查陣列空值
  5. 使用 Java 8 檢查陣列空值
如何在 Java 中檢查一個陣列是否為空

本教程介紹瞭如何在 Java 中檢查一個陣列是否為空,還列出了一些示例程式碼來了解空檢查過程。

Java 中的空陣列

在 Java 中,陣列是一個儲存類似型別資料的物件。只有當它沒有被例項化或指向一個空引用時,它才可能是空的。

在這個例子中,我們建立了兩個陣列。陣列 arr 被宣告,但沒有被例項化(賦值)。它不包含任何資料,而是指向一個由編譯器分配的空引用(預設值)。陣列 arr2 被宣告並顯式地分配給 null,以建立一個空陣列。

我們可以用這個例子來檢查陣列是否為空。

public class SimpleTesting {
  String[] arr;
  String[] arr2 = null;

  public static void main(String[] args) {
    SimpleTesting obj = new SimpleTesting();
    if (obj.arr == null) {
      System.out.println("The array is null");
    }
    if (obj.arr2 == null) {
      System.out.println("The array2 is null");
    }
  }
}

輸出:

The array is null
The array2 is null

陣列包含空值

這是第二種情況,即一個陣列包含空值。在這種情況下,我們可以認為一個陣列是空值。

假設,我們有一個可以包含 5 個元素的字串陣列。由於陣列沒有被初始化,那麼它持有編譯器分配的空值(預設值)。

public class SimpleTesting {
  String[] arr = new String[5];

  public static void main(String[] args) {
    boolean containNull = true;
    SimpleTesting obj = new SimpleTesting();
    for (int i = 0; i < obj.arr.length; i++) {
      if (obj.arr[i] != null) {
        containNull = false;
        break;
      }
    }
    if (containNull) {
      System.out.println("Array is null");
    }
  }
}

輸出:

Array is null

Java 中的空陣列

只有當一個陣列包含零個元素並且長度為零時,這個陣列才是空的。我們可以使用陣列物件的長度屬性(.length)來測試它。

public class SimpleTesting {
  String[] arr = new String[0];

  public static void main(String[] args) {
    SimpleTesting obj = new SimpleTesting();
    if (obj.arr.length == 0) {
      System.out.println("The array is Empty");
    }
  }
}

輸出:

The array is Empty

在 Java 中使用 Apache Commons 庫檢查陣列空值

如果你正在使用 Apache,那麼使用 ArrayUtils 類來檢查一個陣列是否為空。ArrayUtils 類提供了一個方法 isEmpty(),它返回一個布林值,可以是 true 或 false。關於 apache 庫的更多資訊訪問這裡

import org.apache.commons.lang3.ArrayUtils;

public class SimpleTesting {
  String[] arr = new String[0];

  public static void main(String[] args) {
    SimpleTesting obj = new SimpleTesting();
    Boolean isEmpty = ArrayUtils.isEmpty(obj.arr);
    if (isEmpty) {
      System.out.println("Array is Empty");
    }
  }
}

輸出:

Array is Empty

使用 Java 8 檢查陣列空值

如果你使用的是 Java 8 或更高版本,那麼你可以使用 Arrays 類的 stream() 方法來呼叫 allMatch() 方法來檢查陣列是否包含空值。

當陣列包含空值時,就會出現這種情況。

import java.util.Arrays;
import java.util.Objects;

public class SimpleTesting {
  String[] arr = new String[10];

  public static void main(String[] args) {
    SimpleTesting obj = new SimpleTesting();
    Boolean containNull = Arrays.stream(obj.arr).allMatch(Objects::nonNull);
    if (!containNull) {
      System.out.println("Array is null");
    }
  }
}

輸出:

Array is null

相關文章 - Java Array