В фрагменте на Java: 'List list = Arrays.asList("a","b"); list.add("c");' Что произойдёт при выполнении и почему; как правильно создать изменяемый список в этом случае
При выполнении будет выброшено исключение UnsupportedOperationException на строке `list.add("c")`. Причина: `Arrays.asList(...)` возвращает фиксированного размера список (внутренний класс `java.util.Arrays$ArrayList`), который бэкирован массивом, поэтому операции изменения размера (`add`/`remove`) не поддерживаются, хотя `set` работать будет. Факты: - В вашем примере список имеет длину 222 (элементы на индексах 000 и 111). - `list.set(0, "x")` — разрешено. - `list.add("c")` / `list.remove(0)` — приведут к `UnsupportedOperationException`. Правильные способы создать изменяемый список: - Скопировать в `ArrayList`: - `List list = new ArrayList(Arrays.asList("a","b"));` - В Java 9+ можно использовать: - `List list = new ArrayList(List.of("a","b"));` Обе версии позволят затем делать `list.add("c")` без исключений.
Факты:
- В вашем примере список имеет длину 222 (элементы на индексах 000 и 111).
- `list.set(0, "x")` — разрешено.
- `list.add("c")` / `list.remove(0)` — приведут к `UnsupportedOperationException`.
Правильные способы создать изменяемый список:
- Скопировать в `ArrayList`:
- `List list = new ArrayList(Arrays.asList("a","b"));`
- В Java 9+ можно использовать:
- `List list = new ArrayList(List.of("a","b"));`
Обе версии позволят затем делать `list.add("c")` без исключений.