本サイトはプロモーション(広告)が含まれています。

【Java】Listのgetを使って特定の要素を取り出す

【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

Javaの記事一覧へ

PAGE TOP