【Java】Listのgetで範囲外とならないように取得する
javaのListから要素を取り出す場合は、getメソッドを使用します。
get(数値): Listの要素を取り出す
get(数値)を使用すると、Listの数値の位置の要素を取り出すことができます。
List<String> list= new ArrayList <>();
list.add("0番目の要素");
list.add("1番目の要素");
System.out.println(list.get(0));
System.out.println(list.get(1));
//実行結果
0番目の要素
1番目の要素
範囲外にアクセスするとエラーとなる
範囲外のアクセスしようとするとエラーとなります。上のサンプルプログラムでは2番目の要素にアクセスしようとした際などです。
List<String> list= new ArrayList <>();
list.add("0番目の要素");
list.add("1番目の要素");
// 範囲外のためエラーとなる
System.out.println(list.get(2));
// 実行結果
Exception in thread "main" java.lang.IndexOutOfBoundsException:
Index 2 out of bounds for length 2
範囲外のアクセスを防ぐには要素数を把握し、要素数以上の範囲にアクセスしなければエラーとなりません
| size | Listの要素数を取得します。 |
sizeメソッドを使用し、返却された数-1がアクセスできる数のため、条件分岐などで制御を行います。
List<String> list= new ArrayList <>();
list.add("0番目の要素");
list.add("1番目の要素");
// Listの要素数を取得
int listsize = list.size();
// 要素外検証のため、5回ループ
for (int i = 0; i < 5; i++) {
// 範囲外検証のための条件分岐
if (i < listsize) {
System.out.println(list.get(i));
} else {
System.out.println(i + "番目の要素は範囲外です");
}
}
// 実行結果
0番目の要素
1番目の要素
2番目の要素は範囲外です
3番目の要素は範囲外です
4番目の要素は範囲外です

Javaの記事の一覧はJava にまとめてあります
