Javaで配列に要素が含まれるか検索する3つの方法!

Java

Javaで配列に要素が含まれるか検索する方法について書いています。 配列に指定した要素が含まれるか調べるには、下記の方法で行うことができます。

・ループして、要素をひとつずつ確認する ・リストを新しく作って、containsメソッドを使う ・Arrays.streamからanyMatchメソッドを使う

ループして要素を確認する

ループして、要素をひとつずつ確認していく方法が思いつきます。 例えば、下記のように処理できます。

String fruits[] = {"apple", "grape", "peach", "orange", "banana"};
Boolean isExistPeach = false;

for (String fruit: fruits) {
    if (fruit == "peach") {
        isExistPeach = true;
    }
}

if (isExistPeach) {
    System.out.println("モモが配列に存在します!");
}

最初にfruits変数に5つの文字列要素で配列を作成しています。 今回は配列の中の要素に「peach」を含んでいるかループを回して確認してみます。

Boolean型のisExistPeach変数にfalseを入れて用意しました。isExistPeachがtrueだったら、「peach」が配列にあることになります。

そして、拡張for文で配列の要素をひとつずつループして確認しています。 fruit変数にひとつずつ要素が設定されるので、if文を使って「peach」があるか確認して、あった場合にはisExistPeach変数をtrueにしました。

最後にif文でisExistPeach変数を判定していますが、今回は存在するので「モモが配列に存在します!」が出力されて処理が終わります。 このようにfor文でひとつずつ回して確認することが可能です。

リストを新しく作って確認する

配列から新しく、同じ要素を持ったリストを作ります。 その後に、リストからcontainsメソッドを使うことで、要素が含まれるか確認できます。

※java.util.Arrays・java.util.Listをインポートする必要があります。

String fruits[] = {"apple", "grape", "peach", "orange", "banana"};

List fruitList = Arrays.asList(fruits);
if (fruitList.contains("grape")) {
    System.out.println("ブドウが配列に存在します!");
}

先ほどと同様に、fruits変数に5つの文字列要素で配列を作成しています。

その次の処理で、ArraysクラスからasListメソッドを呼んで、作成したfruits配列を渡しています。 これでリストとして返ってくるので、fruitList変数で受け取りました。

そして、fruitListからcontainsメソッドを呼び出しています。 渡しているのが、存在しているか確認したい要素になります。

今回はfruits配列に存在しているので「ブドウが配列に存在します!」を出力して処理が終わります。

anyMatchメソッドを使う

Arrays.streamからanyMatchメソッドを呼ぶことで、配列に要素が含まれるか確認できます。 Java 8以降で登場した機能とのことです。

※java.util.Arraysをインポートする必要があります。

String fruits[] = {"apple", "grape", "peach", "orange", "banana"};
boolean isExistOrange = Arrays.stream(fruits).anyMatch("orange"::equals);

if (isExistOrange) {
    System.out.println("オレンジが配列に存在します!");
}

同様にして、fruits変数に5つの文字列要素で配列を作成しています。 次の行で、Arraysクラスからsteamメソッドを呼び出して、fruits変数を渡しています。

そしてStreamオブジェクトを返して、そこからanyMatchメソッドを呼び出しました。 メソッドに対して、存在するか確認したい要素を渡しました。

存在すれば、isExistOrange変数にtrueが返ってきて、存在しない場合にはfalseが返ってきます。 今回は、存在するため「オレンジが配列に存在します!」が出力されて処理が終わります。

配列に要素が含まれるか検索する方法まとめ

今回はJavaで配列に要素が含まれるか、検索して確認する方法について書きました。 記事の内容をまとめると、下記のようになります。

・ループを回して、要素が含まれるか調べることができた。 ・配列の要素を使ってリストを新しく作って、containsメソッドで調べることができた。 ・ArraysクラスからStreamオブジェクトを返して、anyMatchメソッドで調べることができた。

コメント