Java で配列が空/ヌル(Null/Empty)かどうかをチェックする方法

Mohammad Irfan 2023年10月12日
  1. Java での NULL 配列
  2. 配列に null 値が含まれる
  3. Java の空の配列
  4. Java で Apache Commons ライブラリを使って配列のヌルさをチェックする
  5. Java 8 を使用して配列のヌルをチェックする
Java で配列が空/ヌル(Null/Empty)かどうかをチェックする方法

このチュートリアルでは、Java で配列が NULL か空かをチェックする方法と、NULL チェック処理を理解するためのコード例を紹介します。

Java での NULL 配列

Java では、配列は似たようなタイプのデータを保持するオブジェクトです。配列は、インスタンス化されていない、またはnull 参照を指している場合にのみ、null になります。

この例では、2つの配列を作成しました。配列 arr は宣言されていますが、インスタンス化されていません。これは何のデータも保持せず、コンパイラによって割り当てられたヌル参照(デフォルト値)を参照します。配列 arr2 は宣言され、明示的に null を代入して null 配列を作成します。

この例を使って、配列が 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

配列に null 値が含まれる

これは、配列にヌル値が含まれている場合の 2 番目のシナリオです。この場合、配列はヌル値であると考えることができます。

例えば、5つの要素を含む文字列の配列があるとします。配列は初期化されていないので、コンパイラによって割り当てられた null(デフォルト値)を保持しています。

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 の空の配列

配列が空であるのは、それが 0(0)の要素を含み、長さが 0 の場合だけです。配列オブジェクトの 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() メソッドを提供しており、これは真か偽かのどちらかのブール値を返します。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() メソッドを呼び出し、配列に null 値が含まれているかどうかをチェックすることができます。

これは配列にヌル値が含まれている場合です。

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