remove(int) と remove(Object)
出力はどれか。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(10);
list.add(20);
list.add(30);
list.remove(1);
list.remove(Integer.valueOf(10));
System.out.println(list);
}
}
- A
[30] - B
[20, 30] - C
[10, 30] - D 実行時に例外が発生する
正解と解説を見る
正解: A
- A: remove(1) で位置 1 の 20 を削除し、remove(Integer.valueOf(10)) で値 10 を削除して [30] です。
- B: remove(Integer.valueOf(10)) で値が 10 の要素も削除されます。
- C: remove(1) は int なので、値 1 ではなく位置 1 (20) を削除します。
- D: どちらの remove も存在する要素を削除するので、例外にはなりません。
ポイント
remove(1)は int なので 位置 1 の要素 (20) を削除します。remove(Integer.valueOf(10))は Object なので、値が 10 の要素 を削除します。