Коллекции
Вопрос 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].