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メソッドで調べることができた。
コメント