Коллекции

Вопрос 1

Что будет, если попытаться откомпилировать и запустить следующий код:

int[] array = {6,9,8};

List<Integer> list = new ArrayList<>();

list.add(array[0]);

list.add(array[2]);

list.set(1, array[1]);

list.remove(0);

System.out.println(list);

а. Код не откомпилируется.
б. Код откомпилируется, но программа выбросит исключение во время выполнения.
в. Код откомпилируется и программа отработает без ошибок, выведя в консоль [8].
г. Код откомпилируется и программа отработает без ошибок, выведя в консоль [9].

г. Код откомпилируется и программа отработает без ошибок, выведя в консоль [9].

И массивы и списки (List) индексируются с ноля. Поэтому сперва в список будет добавлен элемент массива с индексом 0, то есть число 6, затем элемент с индексом 2, то есть число 8. После чего список будет иметь следующий вид: [6, 8], где 6 -- нулевой элемент.

Затем метод set заменяет элемент списка с индексом 1 (это число 8) на элемент массива с индексом 1 (а это число 9). После чего список будет иметь следующий вид: [6, 9].

Затем метод remove удалит элемент списка с индексом 0 (а это число 6) и "сдвинет" оставшиеся элементы к началу. Таким образом, список будет иметь вид: [9].

Собственно на консоль и будет выведено [9].