【Java】Listのgetを使って特定の要素を取り出す
javaのListから特定の要素を取り出す場合は、getメソッドを使用します。
get(数値): Listの要素を取り出す
get(数値)を使用すると、Listの数値の位置の要素を取り出すことができます。
List<String> list= new ArrayList <>();
list.add("テスト");
list.add("リスト");
System.out.println(list.get(0));
System.out.println(list.get(1));
//実行結果
テスト
リスト
Listを検索し特定の要素があれば取り出す
特定の要素を取り出すには、indexOfメソッドとgetメソッドを組み合わせることで利用可能です。
indexOfメソッドは、Listの指定要素が何番目にあるかを検索することができ、指定要素が含まれていれば、指定要素の位置、指定要素が存在しない場合は-1を出力します。getメソッドに取得した値を指定すれば、特定の要素を取り出すことが可能です。
なお、存在しない場合は、getメソッドでアクセスしようとするとエラーとなるため、制御が必要となります。
List<String> list= new ArrayList <>(Arrays.asList("テスト", "リスト", "てすと", "りすと"));
int i = list.indexOf("リスト");
if (i >= 0) {
System.out.println(list.get(i));
} else {
System.out.println("特定要素無し");
}
//実行結果
リスト
//実行結果 (int i = list.indexOf("LIST");)
特定要素無し
要素は0番目からはじまるため、制御は0以上の場合に特定要素を取得するようにします。もし、制御をしない場合は、範囲外のアクセスとなるため次のエラーとなります。
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 4
Listを検索し特定の要素があれば取り出す(複数)
Listを検索し、複数の要素を取り出す場合はループ処理にて取り出すことができます。
matchesメソッドと正規表現を利用して、部分一致の場合に当てはまった要素を取り出すことができます。
ただし、Listから複数の値を取り出す場合の受け皿はList等使うことになるのでgetで特定の要素を取り出す場合より頻度は下がるものと思われます。
「^.*」と「.*$」を使用することで部分一致を実装できます。
List<String> list= new ArrayList <>(
Arrays.asList("リスト", "リスト2","a", "3リスト4", "リスト5"));
for (String str: list) {
if (str.matches("^.*リスト.*$")) {
System.out.println(str);
}
}
//実行結果
リスト
リスト2
3リスト4
リスト5





コメントを残す