Метод remove
Метод remove класса Iterator удаляет из коллекции
последний элемент, который был получен при помощи метода
next. Метод не принимает параметров и не возвращает
значения. Его можно вызывать только один раз после каждого
вызова next, иначе будет выброшено исключение
IllegalStateException. Также метод remove
может выбрасывать исключение UnsupportedOperationException,
если итератор не поддерживает операцию удаления.
Синтаксис
iterator.remove()
Пример
Давайте удалим все четные числа из списка, используя
итератор и метод remove:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = new ArrayList<>(List.of(1, 2, 3, 4, 5));
Iterator<Integer> iter = list.iterator();
while (iter.hasNext())
{
Integer num = iter.next();
if (num % 2 == 0)
{
iter.remove();
}
}
System.out.println(list);
}
}
Результат выполнения кода:
[1, 3, 5]
Пример
Давайте удалим строку "abcde" из списка строк:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<String> list = new ArrayList<>(List.of("abcde", "12345", "abcde"));
Iterator<String> iter = list.iterator();
while (iter.hasNext())
{
String str = iter.next();
if (str.equals("abcde"))
{
iter.remove();
}
}
System.out.println(list);
}
}
Результат выполнения кода:
[12345]
Смотрите также
-
метод
next,
который возвращает следующий элемент -
метод
hasNext,
который проверяет наличие следующего элемента -
интерфейс
ListIterator,
который позволяет заменить элемент при обходе -
метод
forEachRemaining,
который применяет действие к оставшимся элементам