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

Mohammad Irfan 2023年1月30日 2020年9月19日
  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