Javaでリストが空であるか、nullオブジェクトであるかを確認する方法を紹介します。
1. List.isEmpty()でリストが空であることを確認する
List.isEmpty()
は、リストオブジェクトがどの要素も持っていないときに true を返します。つまり、リストが空のときに true を返します。
もしリストオブジェクトが null なら、 isEmpty()
メソッド呼び出し時に NullPointerException が発生するので null check も一緒にしなければなりません。
null の場合でも empty と同じように処理するのか、別の例外処理を行うのかは状況によって異なって処理することもできます。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Example1 {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "grape", "banana", "kiwi");
if (list == null || list.isEmpty()) {
System.out.println("list is empty");
}
List<String> list2 = new ArrayList<>();
if (list2 == null || list2.isEmpty()) {
System.out.println("list2 is empty");
}
List<String> list3 = null;
if (list3 == null || list3.isEmpty()) {
System.out.println("list3 is empty");
}
}
}
Output:
list2 is empty
list3 is empty
2. List.size()でリストが空であることを確認する
List.size()
はリストの要素数を返します。リストが空の場合は0を返します。リストの長さとゼロを比較して空であることを確認できます。
上記と同様に、Listオブジェクトがnullである可能性がある場合は、null checkを最初に行う必要があります。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Example2 {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "grape", "banana", "kiwi");
if (list == null || list.size() == 0) {
System.out.println("list is empty");
}
List<String> list2 = new ArrayList<>();
if (list2 == null || list2.size() == 0) {
System.out.println("list2 is empty");
}
List<String> list3 = null;
if (list3 == null || list3.size() == 0) {
System.out.println("list3 is empty");
}
}
}
Output:
list2 is empty
list3 is empty
3. CollectionUtils.isEmpty()でリストが空であることを確認する
CollectionUtils
はApache commonsライブラリによって提供されるクラスです。
Mavenプロジェクトで以下のように設定することができます。
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.1</version>
</dependency>
ライブラリ設定をしたら、 CollectionUtils.isEmpty()
を使うことができます。このメソッドは、引数として渡されたリストオブジェクトがnullまたはemptyの場合にtrueを返します。
以下のようにnull checkをせずに使用できるため、より少ないコードで上記と同じ動作を実装できます。
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Example3 {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "grape", "banana", "kiwi");
if (CollectionUtils.isEmpty(list)) {
System.out.println("list is empty");
}
List<String> list2 = new ArrayList<>();
if (CollectionUtils.isEmpty(list2)) {
System.out.println("list2 is empty");
}
List<String> list3 = null;
if (CollectionUtils.isEmpty(list3)) {
System.out.println("list3 is empty");
}
}
}
Output:
list2 is empty
list3 is empty
3.1 CollectionUtils.isEmpty() の実装コード
ライブラリに実装された CollectionUtils.isEmpty()
のコードを見ると、以下のようにメソッドの中で null check と isEmpty()
をチェックしています。
public static boolean isEmpty(final Collection<?> coll) {
return coll == null || coll.isEmpty();
}
Related Posts
- Java - AtomicReference使用方法
- Java - CountDownLatchを使用する方法、および例
- Java - ScheduledThreadPoolExecutor使用方法
- Java - SummaryStatisticsの使用方法(count、min、max、average)
- Java8 - 関数型インタフェース (Functional Interface) について
- Java - String配列をint配列に変換する
- Java - ArrayList要素の値を変更する方法、replaceAll()
- Java - 2つのリストが同じかどうかを比較
- Java - 配列から特定のIndex要素を削除する3つの方法
- Java - HashMapソート、4つの方法
- Java - 文字列を配列に変換する方法
- Java - ArrayListが空であることを確認する3つの方法
- Java - ArrayListの巡回、4つの方法
- Java - ArrayListの最大値、最小 値を見つける
- Java - ArrayListの合計、平均値の計算
- Java - HashMap巡回、3つの方法
- Java - do whileとwhileの違い
- Java - Lambda式と関数型インタフェース
- Java - List empty(null)チェック、3つの方法
- Java - ArrayListの初期化、4つの方法
- Java - Stream.reduce()の使い方と例
- Java - 2つのマップを結合する(merge、putAll)
- Java - java.util.Dateをjava.sql.Dateに変換する
- Java - ArrayListをStringに変換する
- Java - ClassNotFoundExceptionの発生原因と解決策
- Java - 非静的メソッドは静的コンテキストから参照できません
- Java - NoSuchMethodErrorの原因と解決策
- Java - JSONライブラリを使用する方法(JSONObject、JSONArray)
- Java - byte[]配列をFileに保存
- Java - byte[]の配列をStringに変換
- Java - ファイルのアクセス権を確認し、変更
- Java - 一時フォルダ(Temp directory)パスを取得する
- Javaでシェルスクリプトを実行
- Java - Streamを配列に変換する
- Java - リスト重複排除、2つの方法