Java で配列が空/ヌル(Null/Empty)かどうかをチェックする方法
- Java での NULL 配列
- 配列に null 値が含まれる
- Java の空の配列
- Java で Apache Commons ライブラリを使って配列のヌルさをチェックする
- Java 8 を使用して配列のヌルをチェックする
このチュートリアルでは、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