Как использовать метод итератора для удаления элемента из коллекции в Java?

Kak Ispol Zovat Metod Iteratora Dla Udalenia Elementa Iz Kollekcii V Java



итератор ” предлагает безопасный и простой способ удаления или удаления определенных элементов данных из коллекции во время итерации по ней. Предотвращает возникновение « 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 ” также может быть полезным.