Jak użyć metody iteratora do usunięcia elementu z kolekcji w Javie?

Jak Uzyc Metody Iteratora Do Usuniecia Elementu Z Kolekcji W Javie



iterator ” oferuje bezpieczny i łatwy sposób usuwania lub kasowania określonych elementów danych z kolekcji podczas iteracji. Zapobiega powstawaniu „ ConcurrentModificationException ”, który pojawia się, gdy rozszerzona pętla for próbuje zmodyfikować kolekcję. Przechowuje ścieżkę bieżącej pozycji i oferuje programistom możliwość poruszania się do przodu i usuwania podstawowych elementów w razie potrzeby.

Ten blog przedstawia proces usuwania elementu z kolekcji przy użyciu metody iteratora.







Jak użyć metody iteratora do usunięcia elementu z kolekcji w Javie?

Metoda iteratora jest jednokierunkowa i może być używana z różnymi typami kolekcji, w tym „ ArrayList”, „Lista połączona ” itp. Oferuje jednolity sposób usuwania elementów z dowolnej kolekcji, która implementuje „ Iterowalne ' interfejs.



Przyjrzyjmy się kilku przykładom, aby lepiej zrozumieć metodę iteratora:



Przykład 1: Usuwanie określonych elementów z kolekcji przy użyciu metody iteratora

Metodę iteratora można wykorzystać z „ Jeśli ” instrukcje lub pętle, aby wybrać określone elementy. A potem „ usunąć ()” służy do wykonania operacji usuwania, jak pokazano poniżej:





import java.util.* ;
klasa IterExam
{
publiczny statyczny próżnia główny ( Strunowy [ ] argumenty )
{
lista tablic < Liczba całkowita > demoArrList = nowy lista tablic < Liczba całkowita > ( ) ;
Do ( int I = 0 ; I <= 20 ; I = I + 2 )
{
demoArrList. dodać ( I ) ;
}
Iterator < Liczba całkowita > itr = demoArrList. iterator ( ) ;
System . na zewnątrz . println ( „Dostarczona lista tablic:” ) ;

Do ( int I = 0 ; I < demoArrList. rozmiar ( ) ; I ++ )
{
System . na zewnątrz . wydrukować ( demoArrList. Dostawać ( I ) + ' ' ) ;
}
chwila ( itr. maNastępny ( ) )
{
Jeśli ( itr. Następny ( ) % 3 == 0 )
itr. usunąć ( ) ;
}
System . na zewnątrz . println ( ' \N Po usunięciu nieparzystych elementów ArrayList” ) ;
Do ( int I = 0 ; I < demoArrList. rozmiar ( ) ; I ++ )
{
System . na zewnątrz . wydrukować ( demoArrList. Dostawać ( I ) + ' ' ) ;
}
}
}

Opis powyższego kodu:

  • Najpierw tworzona jest tablica ArrayList, a następnie wielokrotność „ 2 ” jest wstawiany do zakresu „ 20 ” przy pomocy „ Do ' pętla.
  • Następnie zadeklaruj „ iterator ” obiekt metody, aby wyświetlić elementy ArrayList na konsoli.
  • Następnie skorzystaj z opcji „ maNastępny ()” z obiektem iteratora, aby przechodzić przez wszystkie rezydujące elementy ArrayList.
  • Następnie „ Jeśli ” służy do sprawdzania elementów, które są w pełni podzielne przez „ 3 ' w środku tego.
  • A później ' usunąć ()” służy do usuwania elementów, które są zwracane przez „ Jeśli ' oświadczenie.
  • Ostatecznie zaktualizowana lista ArrayList została wyświetlona za pomocą „ Do ' pętla.

Po kompilacji:



Dane wyjściowe wyświetlają określone elementy, które są podzielne przez trzy i usuwane z tablicy ArrayList przy użyciu metody iteratora.

Przykład 2: Usuwanie wszystkich elementów z kolekcji

Aby usunąć wszystkie pozostałe elementy kolekcji, można użyć metody iteratora wraz z jej „ usunąć ()”, jak pokazano poniżej:

import java.util.* ;
klasa Pustka
{
publiczny statyczny próżnia główny ( Strunowy arg [ ] )
{
Wektor < Liczba całkowita > testWektor = nowy Wektor < Liczba całkowita > ( ) ;
testWektor. dodać ( 18 ) ;
testWektor. dodać ( dwadzieścia jeden ) ;
testWektor. dodać ( 25 ) ;
testWektor. dodać ( 27 ) ;
testWektor. dodać ( 30 ) ;

Iterator < Liczba całkowita > trawers = testWektor. iterator ( ) ;
System . na zewnątrz . wydrukować ( „Istniejące elementy:” ) ;
chwila ( trawers. maNastępny ( ) )
System . na zewnątrz . wydrukować ( trawers. Następny ( ) + ' ' ) ;
System . na zewnątrz . wydrukować ( ' \N TestVector zawiera „ + testWektor. rozmiar ( ) + ' elementy ' ) ;
trawers = testWektor. iterator ( ) ;
chwila ( trawers. maNastępny ( ) )
{
System . na zewnątrz . wydrukować ( ' \N usuwanie ' + trawers. Następny ( ) ) ;
trawers. usunąć ( ) ;
}
System . na zewnątrz . println ( ' \N Teraz testVector zawiera „ + testWektor. rozmiar ( ) + ' elementy' ) ;
}
}

Opis kodu:

  • Najpierw zadeklaruj i zainicjuj „ Wektor ” z fikcyjnymi wartościami typu całkowitego przy użyciu „ dodać ()' metoda.
  • Następnie utwórz metodę iteratora, która używa „ maNastępny ()' I ' Następny ()” metody. Wyświetla rezydujące elementy danych i odpowiadający im rozmiar.
  • Następnie skorzystaj z opcji „ maNastępny ()” wzdłuż obiektu iteratora wewnątrz „ chwila ' pętla.
  • Następnie skorzystaj z opcji „ Następny ()”, aby wybrać nadchodzący element, a następnie usunąć () jest wywoływana w celu usunięcia każdego elementu odbierającego.
  • W ten sposób wszystkie elementy wektora zostaną usunięte, a rozmiar wektora zostanie wyświetlony na konsoli.

Opis kodu:

Powyższy kod potwierdza, że ​​wszystkie elementy z kolekcji zostały usunięte.

Przykład 3: Usuwanie elementu za pomocą ListIterator

ListIterator działa podobnie do metody iteratora. ListIterator wykonuje przechodzenie po obu stronach w kierunku do przodu i do tyłu. Aby usunąć określone elementy z kolekcji za pomocą ListIterator w Javie, odwiedź poniższy kod:

import java.util.ArrayList ;
import java.util.ListIterator ;
publiczny klasa ListIteratorDemo {

//Inicjowanie metody main().
publiczny statyczny próżnia główny ( Strunowy [ ] argumenty )
{ //Deklarowanie i inicjowanie tablicy ArrayList
lista tablic < Strunowy > dorosły = nowy lista tablic < Strunowy > ( ) ;
dorosły dodać ( 'Bluza z kapturem' ) ;
dorosły dodać ( 'Polak' ) ;
dorosły dodać ( „Henleye” ) ;
dorosły dodać ( 'Pot' ) ;
dorosły dodać ( 'Zwykły' ) ;
dorosły dodać ( 'Luksus' ) ;
dorosły dodać ( „na sucho” ) ;


ListIterator < Strunowy > litr = dorosły listIterator ( ) ;
System . na zewnątrz . println ( „Lista przed usunięciem” ) ;
Do ( int I = 0 ; I < dorosły rozmiar ( ) ; I ++ )
System . na zewnątrz . wydrukować ( dorosły Dostawać ( I ) + ' ' ) ;
chwila ( litr. maNastępny ( ) ) {
Jeśli ( litr. Następny ( ) . równa się ( 'Pot' ) ) {
litr. usunąć ( ) ;
}
}
System . na zewnątrz . println ( ' \N Lista po usunięciu” ) ;
Do ( int I = 0 ; I < dorosły rozmiar ( ) ; I ++ )
System . na zewnątrz . wydrukować ( dorosły Dostawać ( I ) + ' ' ) ;
}
}

Opis powyższego kodu:

  • Najpierw zadeklaruj i zainicjuj ArrayList fałszywymi wartościami typu String i wyświetl wszystkie elementy na konsoli za pomocą „ Do ' pętla.
  • Następnie utwórz obiekt, który wywołuje „ maNastępny ()” metoda wewnątrz „ chwila ' pętla. Przechodzi przez wszystkie rezydujące elementy.
  • A później ' Jeśli ” używana jest instrukcja, która sprawdza każdy element z określonym tekstem, gdy ten element pasuje do „ usunąć ()” jest wywoływana. Usuwa określony element z „ aArt ” o nazwie ArrayList.
  • Na koniec wyświetl zmodyfikowaną tablicę ArrayList na konsoli.

Po kompilacji:

Migawka potwierdza, że ​​określony element danych został usunięty z kolekcji przy użyciu ListIterator.

Wniosek

Aby usunąć element z kolekcji, „ usunąć ()” jest wykorzystywana metoda iteratora. Iterator przechodzi przez ArrayList, aby znaleźć docelowe dane. Po znalezieniu „ usunąć ()” służy do usuwania tego konkretnego elementu danych. Oferuje znormalizowaną technikę w różnych kolekcjach i zapobiega problemom oraz występowaniu kilku wyjątków, takich jak „ ConcurrentModificationException ”. Wraz z nim „ ListIterator ” również może być pomocne.