Что выведет код Middle Коллекции изнутри обновлено

Что выведет: Arrays.asList и исходный массив

Вопрос

Что выведет программа (Java 21)? Каждый вывод println с новой строки.

import java.util.*;

public class Main {
    public static void main(String[] args) {
        String[] arr = {"a", "b", "c"};
        List<String> list = Arrays.asList(arr);
        list.set(0, "z");
        System.out.println(arr[0]);
        arr[1] = "y";
        System.out.println(list);
        try {
            list.add("d");
        } catch (UnsupportedOperationException e) {
            System.out.println("UOE");
        }
        int[] nums = {1, 2, 3};
        System.out.println(Arrays.asList(nums).size());
    }
}

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: z, [z, y, c], UOE, 1. Arrays.asList это представление массива: set пишет в массив, изменения массива видны в списке.

Что выведет

z
[z, y, c]
UOE
1

Разбор

Arrays.asList это представление массива: set пишет в массив, изменения массива видны в списке. Размер фиксирован, add бросает UnsupportedOperationException. С int[] ловушка: дженерик не может быть примитивом, поэтому получается List<int[]> из одного элемента.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме