Java Listに特定の値が含まれているか確認する方法|contains()の使い方

Java の開発では、「List に特定の値が含まれているかどうか」を判定したいケースが多くあります。
例えば、入力チェック、検索ロジック、重複確認などです。

そのような場面では、contains() メソッドを使うことで簡単に判定できます。
この記事では、基本構文から実践例、オブジェクト比較時の注意点まで解説します。


✔結論:contains()で存在判定できる


■ contains() の基本構文

  • 含まれていれば → true

  • 含まれていなければ → false

非常にシンプルです。


✔ 使用例(String 型)

判定対象 結果
"banana" true(含まれる)
"grape" false(含まれない)

✔ contains() は equals() を利用して判定する


※ここに既存画像②(equals判定の関係解説)挿入


contains() は内部的に equals() を利用して比較します。
そのため、比較対象がオブジェクト型の場合、equals() を正しく実装しないと想定どおり判定できません。


■ equals() をオーバーライドした例

▶ もし equals() を未実装なら?

別インスタンス扱いになるため見つからない


✔ contains() を使う時の注意点

注意点説明
equals() の実装が必須オブジェクト比較の場合、デフォルトでは参照比較になるため判定が意図通り動かないことがあります。
大文字・小文字に注意文字列比較では "Apple" と "apple" は別扱いです。
大量データではパフォーマンスに注意contains() は線形検索(O(n))のため、データ数が多い場合 HashSet の利用も検討してください。

✔ 大規模データなら Set が高速

大量データで検索を繰り返す場合は ListHashSet に変更する方が効率的です。


まとめ

  • contains() は List に検索対象が含まれているか簡単に判定できます。

  • オブジェクト比較では equals() を正しく実装する必要があります。

  • 頻繁に検索するケースでは HashSet などへの置き換えも検討しましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

email confirm*

post date*

「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

モバイルバージョンを終了