“ итератор ” предлагает безопасный и простой способ удаления или удаления определенных элементов данных из коллекции во время итерации по ней. Предотвращает возникновение « ConcurrentModificationException », который возникает, когда расширенный цикл for пытается изменить коллекцию. Он хранит трек текущей позиции и предлагает программистам возможность двигаться вперед и удалять базовые элементы по мере необходимости.
В этом блоге демонстрируется процесс удаления элемента из коллекции с использованием метода итератора.
Как использовать метод итератора для удаления элемента из коллекции в Java?
Метод итератора является однонаправленным и может использоваться с различными типами коллекций, включая « Список массивов», «Связанный список ', и т. д. Он предлагает единый способ удаления элементов из любой коллекции, которая реализует ' Итерируемый интерфейс.
Давайте рассмотрим несколько примеров, чтобы лучше понять метод итератора:
Пример 1. Удаление определенных элементов из коллекции с использованием метода итератора
Метод итератора можно использовать с « если ” или циклы для выбора указанных элементов. И тогда « удалять ()» используется для выполнения операции удаления, как показано ниже:
Импортировать Java.util.* ;
сорт ИтерЭкзамен
{
публичный статический пустота основной ( Нить [ ] аргументы )
{
ArrayList < Целое число > demoArrList '=' новый ArrayList < Целое число > ( ) ;
для ( инт я '=' 0 ; я <= двадцать ; я '=' я + 2 )
{
demoArrList. добавлять ( я ) ;
}
Итератор < Целое число > это '=' demoArrList. итератор ( ) ;
Система . вне . печать ( 'Предоставленный список массивов:' ) ;
для ( инт я '=' 0 ; я < demoArrList. размер ( ) ; я ++ )
{
Система . вне . Распечатать ( demoArrList. получать ( я ) + ' ' ) ;
}
пока ( итр. hasNext ( ) )
{
если ( итр. следующий ( ) % 3 == 0 )
итр. удалять ( ) ;
}
Система . вне . печать ( ' \n После удаления нечетных элементов ArrayList' ) ;
для ( инт я '=' 0 ; я < demoArrList. размер ( ) ; я ++ )
{
Система . вне . Распечатать ( demoArrList. получать ( я ) + ' ' ) ;
}
}
}
Описание приведенного выше кода:
- Сначала создается список ArrayList, а затем кратное « 2 ' вставляется до диапазона ' двадцать » с помощью « для ' петля.
- Затем объявите « итератор », чтобы отобразить элементы ArrayList на консоли.
- Затем используйте « hasNext ()» с объектом итератора для обхода всех находящихся элементов ArrayList.
- После этого « если » используется для проверки элементов, которые полностью делятся на « 3 ' внутри него.
- Затем « удалять ()» используется для удаления элементов, возвращаемых методом « если ' заявление.
- В конце концов, обновленный ArrayList был отображен с помощью « для ' петля.
После компиляции:
В выходных данных отображаются определенные элементы, которые делятся на три и удаляются из ArrayList с помощью метода итератора.
Пример 2. Удаление всех элементов из коллекции
Чтобы удалить все постоянные элементы коллекции, можно использовать метод итератора вместе с его « удалять ()», как показано ниже:
Импортировать Java.util.* ;сорт Пустота
{
публичный статический пустота основной ( Нить аргумент [ ] )
{
Вектор < Целое число > тестВектор '=' новый Вектор < Целое число > ( ) ;
тестВектор. добавлять ( 18 ) ;
тестВектор. добавлять ( двадцать один ) ;
тестВектор. добавлять ( 25 ) ;
тестВектор. добавлять ( 27 ) ;
тестВектор. добавлять ( 30 ) ;
Итератор < Целое число > траверс '=' тестВектор. итератор ( ) ;
Система . вне . Распечатать ( 'Существующие элементы:' ) ;
пока ( траверс. hasNext ( ) )
Система . вне . Распечатать ( траверс. следующий ( ) + ' ' ) ;
Система . вне . Распечатать ( ' \n TestVector содержит ' + тестВектор. размер ( ) + 'элементы' ) ;
траверс '=' тестВектор. итератор ( ) ;
пока ( траверс. hasNext ( ) )
{
Система . вне . Распечатать ( ' \n удаление ' + траверс. следующий ( ) ) ;
траверс. удалять ( ) ;
}
Система . вне . печать ( ' \n Теперь testVector содержит ' + тестВектор. размер ( ) + 'элементы' ) ;
}
}
Описание кода:
- Сначала объявите и инициализируйте « Вектор ” с фиктивными значениями целочисленного типа, используя “ добавлять ()».
- Затем создайте метод итератора, который использует « hasNext ()' и ' следующий ()». Он отображает постоянные элементы данных и их соответствующий размер.
- Затем используйте « hasNext ()» вдоль объекта итератора внутри « пока ' петля.
- После этого используйте « следующий ()», чтобы выбрать следующий элемент, а затем метод удалять () вызывается для удаления каждого принимающего элемента.
- Таким образом, все элементы Вектора удаляются, а размер Вектора отображается на консоли.
Описание кода:
Вышеприведенный код подтверждает, что все элементы из коллекции были удалены.
Пример 3: Удаление элемента с помощью ListIterator
ListIterator работает аналогично методу итератора. ListIterator выполняет обход с обеих сторон в прямом и обратном направлениях. Чтобы удалить определенные элементы из коллекции с помощью ListIterator в Java, воспользуйтесь приведенным ниже кодом:
Импортировать java.util.ArrayList ;Импортировать java.util.ListIterator ;
публичный сорт ListIteratorDemo {
//Инициализация метода main()
публичный статический пустота основной ( Нить [ ] аргументы )
{ //Объявление и инициализация ArrayList
ArrayList < Нить > взрослый '=' новый ArrayList < Нить > ( ) ;
взрослый добавлять ( 'Толстовка с капюшоном' ) ;
взрослый добавлять ( 'Полюс' ) ;
взрослый добавлять ( 'Хенлис' ) ;
взрослый добавлять ( 'Пот' ) ;
взрослый добавлять ( 'Повседневный' ) ;
взрослый добавлять ( 'Роскошь' ) ;
взрослый добавлять ( 'Драйфит' ) ;
ListIterator < Нить > литр '=' взрослый списокитератор ( ) ;
Система . вне . печать ( 'Список перед удалением' ) ;
для ( инт я '=' 0 ; я < взрослый размер ( ) ; я ++ )
Система . вне . Распечатать ( взрослый получать ( я ) + ' ' ) ;
пока ( литр. hasNext ( ) ) {
если ( литр. следующий ( ) . равно ( 'Пот' ) ) {
литр. удалять ( ) ;
}
}
Система . вне . печать ( ' \n Список после удаления' ) ;
для ( инт я '=' 0 ; я < взрослый размер ( ) ; я ++ )
Система . вне . Распечатать ( взрослый получать ( я ) + ' ' ) ;
}
}
Описание приведенного выше кода:
- Во-первых, объявите и инициализируйте ArrayList с фиктивными значениями типа String и отобразите все элементы на консоли, используя « для ' петля.
- Затем создайте объект, который вызывает « hasNext ()” метод внутри “ пока ' петля. Он проходит через все жилые элементы.
- Затем « если », который проверяет каждый элемент с определенным текстом, когда этот элемент соответствует « удалять ()» вызывается метод. Он удаляет определенный элемент из « искусство ” с именем ArrayList.
- В конце отобразите измененный ArrayList на консоли.
После компиляции:
Моментальный снимок подтверждает, что указанный элемент данных был удален из коллекции с помощью ListIterator.
Заключение
Чтобы удалить элемент из коллекции, нажмите « удалять ()» используется метод итератора. Итератор проходит через ArrayList, чтобы найти целевые данные. Как только он будет найден « удалять ()» используется для удаления этого конкретного элемента данных. Он предлагает стандартизированную технику для разных коллекций и предотвращает проблемы и возникновение нескольких исключений, таких как « ConcurrentModificationException ». Наряду с этим « ListIterator ” также может быть полезным.