@thatmaniscool

Как удалить элементы из списка ArrayList java?

Есть два списка, один содержит цифры от 1 до 9, а другой содержит цифры, которые нужно удалить.
List <Integer> list = new ArrayList <Integer> (Arrays.asList(1, 2, 3, 4, 5, 6, 7,8,9));
    	List <Integer> needRemove = new ArrayList <Integer> (Arrays.asList(3, 4, 5, 9));
    	
    	for (int i : needRemove) {
    		if (list.contains(i))
    			list.remove(i);
    	}


Выдает ошибку, что программа вышла за пределы массива.
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 9, Size: 7
	at java.util.ArrayList.rangeCheck(Unknown Source)
	at java.util.ArrayList.remove(Unknown Source)
	at ExcelID.ExcelArtifact.App.main(App.java:126)

Пробовал через итератор, но элементы не удаляются.
  • Вопрос задан
  • 656 просмотров
Пригласить эксперта
Ответы на вопрос 2
@022y
В новый список скопировать нужные (которые не надо удалять) элементы. Затем первый список подменить вторым.
Ответ написан
Комментировать
@deniz1983
...
list.remove(i) удаляет элемент по его индексу (i). Ошибка вам верно выдается, так как после каждого удаления размер массива list сокращается и в нем уже нет элемента по индексу 9.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы