Junior
Чӣ гуна аз ArrayList унсурҳоро хориҷ кардан ва дар ин ҳолат андозаи он чӣ гуна тағир меёбад?
sobes.tech AI
Ҷавоб аз AI
При удалении элемента из середины или начала списка, элементы с бόльшими индексами сдвигаются влево, заполняя освободившуюся позицию.
// Пример удаления элемента по индексу
ArrayList<String> list = new ArrayList<>(Arrays.asList("A", "B", "C", "D"));
list.remove(1); // Удаление элемента "B"
// Теперь список: ["A", "C", "D"]
При удалении элемента по значению, находится первое вхождение этого элемента, и происходит аналогичный сдвиг.
// Пример удаления элемента по значению
ArrayList<String> list = new ArrayList<>(Arrays.asList("A", "B", "C", "B"));
list.remove("B"); // Удаление первого вхождения "B"
// Теперь список: ["A", "C", "B"]
Удаление элемента из конца списка не требует сдвига элементов. Просто уменьшается размер.
// Пример удаления элемента из конца
ArrayList<String> list = new ArrayList<>(Arrays.asList("A", "B", "C"));
list.remove(list.size() - 1); // Удаление элемента "C"
// Теперь список: ["A", "B"]
В любом случае, при успешном удалении элемента, логический размер списка (который возвращает метод size()) уменьшается на единицу. Массив, лежащий в основе ArrayList, физически не уменьшается сразу, но при следующем добавлении элемента может произойти перераспределение памяти (увеличение capacity), если текущая вместимость недостаточна.