Javaのリストに要素を含むか検索する2つの方法!

Java Java

Javaのリスト(ArrayList)に要素を含むか検索する方法について書いています。
リストに要素を含むか確認するには、下記のメソッドを使います。

・containsメソッド
・indexOfメソッド

載せているコードについては、OpenJDKのバージョン19で動作を確認しました。

containsメソッドで含むか検索する

リストに含むか検索して確認するには、containsメソッドを使うことができます。
リストからcontainsメソッドを呼び出して、確認したい要素を渡します。

例えば、下記のように使うことができます。

import java.util.ArrayList;

public class ContainsListTest {
    public void exec() {
        ArrayList<String> fruits = new ArrayList<String>();
        fruits.add("apple");
        fruits.add("banana");
        fruits.add("peach");
        fruits.add("grape");
        fruits.add("orange");

        if (fruits.contains("peach")) {
            System.out.println("peachを含んでいます。");
        } else {
            System.out.println("peachを含んでいません。");
        }
    }
}

最初にリストを使うためにjava.util.ArrayListをインポートしました。
execメソッドにcontainsメソッドを使う処理を書いています。

最初にfruits変数に対して、文字列のリストを作りました。
作ったリストに対して、5つの文字列を格納しています。

そして、if文の中でfruitsリストからcontainsメソッドを呼び出しました。
引数として渡しているのは「含むか検索したい値」です。
含んでいるときにはtrueが返ってきて、含んでいないときにはfalseが返ってきます。

今回は「peach」がリストに含まれるので、trueが返ってきて、ifの配下の処理が実行されます。
そのため、このプログラムを実行すると「peachを含んでいます。」を出力されて、処理が終わります。

indexOfメソッドで含むか検索する

リストからindexOfメソッドを呼び出すことでも、要素を含むか確認することができます。

例えば、下記のように使います。

import java.util.ArrayList;

public class ContainsListTest {
    public void exec() {
        ArrayList<String> fruits = new ArrayList<String>();
        fruits.add("grape");
        fruits.add("apple");
        fruits.add("banana");

        int result = fruits.indexOf("apple");

        if (-1 < result) {
            System.out.println("appleを含んでいます。");
        } else {
            System.out.println("appleを含んでいません。");
        }
    }
}

最初にリストを使うためにjava.util.ArrayListをインポートしました。
execメソッドにindexOfメソッドを使う処理を書いています。

先ほどと同様にfruits変数に対して、文字列のリストを作っています。
その後に3つの文字列をfruitsリストに追加しました。

次の処理でfruitsリストからindexOfメソッドを呼んでいます。
引数として渡しているのは「含むか検索したい値」になります。
indexOfメソッドは含んでいるときには要素番号を返して、含んでいないときには「-1」を返します。

今回は含まれているので、要素番号の「1」が返ってきて、result変数に代入されます。
if文で「-1 < result」とすることで、含んでいるか判定できます。(含んでいないときには−1が返るためです)

プログラムを実行すると「appleを含んでいます。」と出力されて、含んでいることが確認できました。

リストに要素を含むか確認する方法まとめ

今回はJavaのリストに要素を含むか確認する方法について書きました。
記事の内容をまとめると、下記のようになります。

・リストからcontainsメソッドを使うことで、要素を渡して含んでいるか確認できた。
・containsメソッドは含んでいれば`true`、含んでいなければ`false`を返した。
・リストからindexOfメソッドを使うことで、要素を渡して含んでいるか確認できた。
・indexOfメソッドは含んでいれば要素番号、含んでいなければ「-1」を返した。

リストに含んでいるか確認したいだけならシンプルにcontainsメソッドを使うとよさそうです。
要素番号が必要なときにindexOfメソッドを使っていきましょう。

コメント

タイトルとURLをコピーしました