問題
次のList items の要素を全て出力するコードはどれですか。(2つ選択)
List<Item> items = new ArrayList<>();
items.add(new Item("Java", 100));
items.add(new Item("Database", 300));
items.add(new Item("Cloud", 200));
選択肢
A) for (int i = 0; i <= items.size(); i++) {
Item item = (Item) items.get(i);
System.out.print(item + " ");
}
B) for (int i = 0; i < items.size(); i++) {
Item item = items.get(i);
System.out.print(item + " ");
}
C) for (Item item : items) {
System.out.print(item + " ");
}
D) for (Item i : item) {
System.out.print(item + " ");
}
E) for (int i = 0; i < items.length; i++) {
Item item = items[i];
System.out.print(item + " ");
}
解答
A) for (int i = 0; i <= items.size(); i++) {
Item item = (Item) items.get(i);
System.out.print(item + " ");
}
B) for (int i = 0; i < items.size(); i++) {
Item item = items.get(i);
System.out.print(item + " ");
}
C) for (Item item : items) {
System.out.print(item + " ");
}
D) for (Item i : item) {
System.out.print(item + " ");
}
E) for (int i = 0; i < items.length; i++) {
Item item = items[i];
System.out.print(item + " ");
}
解説
A) for (int i = 0; i <= items.size(); i++) {
Item item = (Item) items.get(i);
System.out.print(item + " ");
}
for文の条件式内の、i <= items.size();により、List内に格納されている要素数以上にアクセスしているため、例外がスローされます。
D) for (Item i : item) { //リスト名のitemsと記述する必要があります。
System.out.print(item + " ");
}
拡張for文の定義方法が間違っています。
E) for (int i = 0; i < items.length; i++) {
Item item = items[i];
System.out.print(item + " ");
}
配列の要素の取り出し方が記述されています。
コレクションフレームワークと配列の要素の取り出し方は違います。
対象資格:Java SE17 認定資格