【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
コメントを残す