Cum să utilizați metoda Iterator pentru a elimina un element dintr-o colecție în Java?

Cum Sa Utilizati Metoda Iterator Pentru A Elimina Un Element Dintr O Colectie In Java



iterator ” oferă o modalitate sigură și ușoară de a elimina sau șterge anumite elemente de date dintr-o colecție în timp ce se repetă peste aceasta. Previne apariția „ ConcurrentModificationException ” care apare atunci când bucla for îmbunătățită încearcă să modifice colecția. Acesta stochează evidența poziției curente și oferă programatorilor șansa de a avansa și de a elimina elementele de bază după cum este necesar.

Acest blog demonstrează procesul de eliminare a unui element dintr-o colecție prin utilizarea metodei iteratorului.







Cum să utilizați metoda Iterator pentru a elimina un element dintr-o colecție în Java?

Metoda iteratorului este unidirecțională și poate fi utilizată cu diferite tipuri de colecție, inclusiv „ ArrayList”, „LinkedList ”, etc. Oferă o modalitate uniformă de a elimina elemente din orice colecție care implementează „ Iterabil ” interfață.



Să vizităm câteva exemple pentru a înțelege mai bine metoda iteratorului:



Exemplul 1: Eliminarea elementelor specifice din colecție utilizând metoda iteratorului

Metoda iteratorului poate fi utilizată cu „ dacă ” instrucțiuni sau bucle pentru a selecta elementele specificate. Și apoi „ elimina ()” este utilizată pentru a efectua operația de ștergere, după cum se arată mai jos:





import java.util.* ;
clasă IterExam
{
public static vid principal ( Şir [ ] argumente )
{
ArrayList < Întreg > demoArrList = nou ArrayList < Întreg > ( ) ;
pentru ( int i = 0 ; i <= douăzeci ; i = i + 2 )
{
demoArrList. adăuga ( i ) ;
}
Iterator < Întreg > itr = demoArrList. iterator ( ) ;
Sistem . afară . println ( „Lista de matrice furnizată:” ) ;

pentru ( int i = 0 ; i < demoArrList. mărimea ( ) ; i ++ )
{
Sistem . afară . imprimare ( demoArrList. obține ( i ) + ' ' ) ;
}
in timp ce ( itr. areNext ( ) )
{
dacă ( itr. Următorul ( ) % 3 == 0 )
itr. elimina ( ) ;
}
Sistem . afară . println ( ' \n După eliminarea elementelor ArrayList impare' ) ;
pentru ( int i = 0 ; i < demoArrList. mărimea ( ) ; i ++ )
{
Sistem . afară . imprimare ( demoArrList. obține ( i ) + ' ' ) ;
}
}
}

Descrierea codului de mai sus:

  • Mai întâi, este creată ArrayList și apoi un multiplu de „ 2 ” este inserat până în intervalul „ douăzeci ' cu ajutorul ' pentru ” buclă.
  • Apoi, declarați un „ iterator ” obiect metoda pentru a afișa elementele ArrayList pe consolă.
  • Apoi, utilizați „ areNext ()” cu obiectul iterator pentru a parcurge toate elementele ArrayList rezidente.
  • După aceea, „ dacă ” declarația este utilizată pentru a verifica elementele care sunt complet divizibile cu ” 3 ' inauntru.
  • Apoi, „ elimina ()” este folosită pentru a șterge elementele care sunt returnate de „ dacă ' afirmație.
  • În cele din urmă, ArrayList actualizat a fost afișat folosind „ pentru ” buclă.

După compilare:



Ieșirea afișează elementele specifice, care sunt divizibile cu trei și eliminate din ArrayList folosind o metodă iteratoare.

Exemplul 2: Eliminarea tuturor elementelor din colecție

Pentru a elimina toate elementele rezidente ale colecției, metoda iteratorului poate fi utilizată împreună cu „ elimina ()” metoda după cum se arată mai jos:

import java.util.* ;
clasă Goliciunea
{
public static vid principal ( Şir arg [ ] )
{
Vector < Întreg > testVector = nou Vector < Întreg > ( ) ;
testVector. adăuga ( 18 ) ;
testVector. adăuga ( douăzeci și unu ) ;
testVector. adăuga ( 25 ) ;
testVector. adăuga ( 27 ) ;
testVector. adăuga ( 30 ) ;

Iterator < Întreg > traversa = testVector. iterator ( ) ;
Sistem . afară . imprimare ( „Elemente existente:” ) ;
in timp ce ( traversa. areNext ( ) )
Sistem . afară . imprimare ( traversa. Următorul ( ) + ' ' ) ;
Sistem . afară . imprimare ( ' \n TestVector conține „ + testVector. mărimea ( ) + 'elemente' ) ;
traversa = testVector. iterator ( ) ;
in timp ce ( traversa. areNext ( ) )
{
Sistem . afară . imprimare ( ' \n eliminarea' + traversa. Următorul ( ) ) ;
traversa. elimina ( ) ;
}
Sistem . afară . println ( ' \n Acum, testVector conține „ + testVector. mărimea ( ) + 'elemente' ) ;
}
}

Descrierea codului:

  • Mai întâi, declarați și inițializați „ Vector ” cu valori de tip întreg inactiv folosind „ adăuga ()” metoda.
  • Apoi, creați o metodă iteratoare care utilizează „ areNext ()' și ' Următorul ()” metode. Afișează elementele de date rezidente și dimensiunea lor corespunzătoare.
  • Apoi, utilizați „ areNext ()” de-a lungul obiectului iterator din interiorul „ in timp ce ” buclă.
  • După aceea, utilizați „ Următorul ()” pentru a selecta elementul viitor și apoi, elimina () este apelată pentru a șterge fiecare element de primire.
  • În acest fel, toate elementele Vectorului sunt eliminate și dimensiunea Vectorului este afișată pe consolă.

Descrierea codului:

Codul de mai sus confirmă că toate elementele din colecție au fost eliminate.

Exemplul 3: Eliminarea elementului folosind ListIterator

ListIterator funcționează similar cu metoda iteratorului. ListIterator efectuează traversarea pe ambele părți în direcțiile înainte și înapoi. Pentru a elimina anumite elemente din colecție folosind ListIterator în Java, accesați codul de mai jos:

import java.util.ArrayList ;
import java.util.ListIterator ;
public clasă ListIteratorDemo {

//Inițializarea metodei main().
public static gol principal ( Şir [ ] argumente )
{ //Declararea și inițializarea ArrayList
ArrayList < Şir > maturizat = nou ArrayList < Şir > ( ) ;
maturizat adăuga ( 'Hanorac cu gluga' ) ;
maturizat adăuga ( 'Pol' ) ;
maturizat adăuga ( 'Henleys' ) ;
maturizat adăuga ( 'Sudoare' ) ;
maturizat adăuga ( 'ocazional' ) ;
maturizat adăuga ( 'Luxos' ) ;
maturizat adăuga ( 'Dryfit' ) ;


ListIterator < Şir > litru = maturizat listIterator ( ) ;
Sistem . afară . println ( „Lista înainte de eliminare” ) ;
pentru ( int i = 0 ; i < maturizat mărimea ( ) ; i ++ )
Sistem . afară . imprimare ( maturizat obține ( i ) + ' ' ) ;
in timp ce ( litru. areNext ( ) ) {
dacă ( litru. Următorul ( ) . egală ( 'Sudoare' ) ) {
litru. elimina ( ) ;
}
}
Sistem . afară . println ( ' \n Lista după eliminare' ) ;
pentru ( int i = 0 ; i < maturizat mărimea ( ) ; i ++ )
Sistem . afară . imprimare ( maturizat obține ( i ) + ' ' ) ;
}
}

Descrierea codului de mai sus:

  • Mai întâi, declarați și inițializați ArrayList cu valorile de tip String false și afișați toate elementele pe consolă folosind „ pentru ” buclă.
  • Apoi, creați un obiect care numește „ areNext ()” metoda din interiorul „ in timp ce ” buclă. Acesta traversează toate elementele rezidente.
  • Apoi, „ dacă ” este folosită instrucțiunea care verifică fiecare element cu un text specific, atunci când acel element se potrivește cu „ elimina ()” se numește metoda. Acesta șterge elementul specific din „ aArt ” numit ArrayList.
  • La final, afișați ArrayList modificat pe consolă.

După compilare:

Instantaneul confirmă că elementul de date specificat a fost eliminat din colecție folosind ListIterator.

Concluzie

Pentru a elimina elementul dintr-o colecție, „ elimina ()” este utilizată metoda iteratorului. Iteratorul traversează ArrayList pentru a găsi datele vizate. Odată ce este găsit „ elimina ()” este utilizată pentru a elimina acel element de date specific. Oferă o tehnică standardizată în diferite colecții și previne problemele și apariția mai multor excepții precum „ ConcurrentModificationException ”. Alături de acesta, „ ListIterator ” poate fi, de asemenea, de ajutor.