Javaのリスト(ArrayList
)に要素を含むか検索する方法について書いています。
リストに要素を含むか確認するには、下記のメソッドを使います。
・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メソッドは含んでいれば`true`、含んでいなければ`false`を返した。
・リストからindexOfメソッドを使うことで、要素を渡して含んでいるか確認できた。
・indexOfメソッドは含んでいれば要素番号、含んでいなければ「-1」を返した。
リストに含んでいるか確認したいだけならシンプルにcontainsメソッドを使うとよさそうです。
要素番号が必要なときにindexOfメソッドを使っていきましょう。
コメント