powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Удаление элементов из списка ArrayList
11 сообщений из 11, страница 1 из 1
Удаление элементов из списка ArrayList
    #38403678
Mr.Genius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Имеется такой простейший код:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ArrayList<String> list = new ArrayList<String>();

Collections.addAll(list, "a","b","c","d","e","f");

list.remove(0);
list.remove(1);
list.remove(2);

for (String s: list) {
     System.out.print(s);
}



Почему у нас выводится "bdf" вместо "def" ?

Спасибо заранее!
...
Рейтинг: 0 / 0
Удаление элементов из списка ArrayList
    #38403684
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому, что элементы сдвигаются к "голове" при удалении из середины. Вот такой код выдаст тот результат, который вы ожидаете:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ArrayList<String> list = new ArrayList<String>();

Collections.addAll(list, "a","b","c","d","e","f");

list.remove(2);
list.remove(1);
list.remove(0);

for (String s: list) {
     System.out.print(s);
}
...
Рейтинг: 0 / 0
Удаление элементов из списка ArrayList
    #38403685
imperfekt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При каждом удалении элемента, индексы оставшихся изменяются (если удалённый элемент имел меньший индекс, т.е. находился, условно говоря, слева).

Первый remove даёт ["b","c","d","e","f"].
Второй - ["b","d","e","f"].
Третий - ["b","d","f"].
...
Рейтинг: 0 / 0
Удаление элементов из списка ArrayList
    #38403688
Mr.Genius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо)) Вопрос очевидный, чет тупил)
...
Рейтинг: 0 / 0
Удаление элементов из списка ArrayList
    #38403701
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
list.remove(0);
list.remove(0);
list.remove(0);
...
Рейтинг: 0 / 0
Удаление элементов из списка ArrayList
    #38403719
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapeckerlist.remove(0);
list.remove(0);
list.remove(0);
for(int i=0; i < 3; i++){
list.remove(0);
}

тогда уж:)
...
Рейтинг: 0 / 0
Удаление элементов из списка ArrayList
    #38403745
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,
я так, концепцию отразить
...
Рейтинг: 0 / 0
Удаление элементов из списка ArrayList
    #38403792
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
list.subList(0,2).clear();

Свеном ты там предложил кстати самый неоптимальный путь удаления.
...
Рейтинг: 0 / 0
Удаление элементов из списка ArrayList
    #38403820
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01list.subList(0,2).clear();

list.subList(0,3).clear();
...
Рейтинг: 0 / 0
Удаление элементов из списка ArrayList
    #38403823
Фотография buldozer01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никbuldozer01list.subList(0,2).clear();

list.subList(0,3).clear();

Parameters:
fromIndex - low endpoint (inclusive) of the subList
toIndex - high endpoint (exclusive) of the subList
Returns:
a view of the specified range within this list
Throws:
IndexOutOfBoundsException - endpoint index value out of range (fromIndex < 0 || toIndex > size)
IllegalArgumentException - if the endpoint indices are out of order (fromIndex > toIndex)


Точно :) Спасибо.
...
Рейтинг: 0 / 0
Удаление элементов из списка ArrayList
    #38403824
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buldozer01 ,
А чем ваш вариант "оптимальнее"?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Удаление элементов из списка ArrayList
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]