« iterator ”-metoden tilbyr en sikker og enkel måte å fjerne eller slette spesifikke dataelementer fra en samling mens du itererer over den. Det forhindrer forekomsten av ' ConcurrentModificationException ” som oppstår når den forbedrede for-løkken prøver å endre samlingen. Den lagrer sporet til gjeldende posisjon og gir programmerere muligheten til å gå videre og fjerne de underliggende elementene etter behov.
Denne bloggen demonstrerer prosessen for å fjerne et element fra en samling ved å bruke iteratormetoden.
Hvordan bruke Iterator-metoden for å fjerne et element fra en samling i Java?
Iteratormetoden er ensrettet og kan brukes med ulike samlingstyper, inkludert ' ArrayList', 'LinkedList ” osv. Det tilbyr en enhetlig måte å fjerne elementer fra enhver samling som implementerer “ Iterable ' grensesnitt.
La oss besøke noen eksempler for bedre å forstå iteratormetoden:
Eksempel 1: Fjerning av spesifikke elementer fra samlingen ved hjelp av iteratormetoden
Iteratormetoden kan brukes med ' hvis ”-setninger eller looper for å velge de angitte elementene. Og så ' fjerne ()»-metoden brukes til å utføre sletteoperasjonen som vist nedenfor:
import java.util.* ;
klasse IterExam
{
offentlig statisk tomrom hoved- ( String [ ] args )
{
ArrayList < Heltall > demoArrList = ny ArrayList < Heltall > ( ) ;
til ( int Jeg = 0 ; Jeg <= tjue ; Jeg = Jeg + 2 )
{
demoArrList. Legg til ( Jeg ) ;
}
Iterator < Heltall > itr = demoArrList. iterator ( ) ;
System . ute . println ( 'Provided ArrayList:' ) ;
til ( int Jeg = 0 ; Jeg < demoArrList. størrelse ( ) ; Jeg ++ )
{
System . ute . skrive ut ( demoArrList. få ( Jeg ) + ' ' ) ;
}
samtidig som ( itr. har Neste ( ) )
{
hvis ( itr. neste ( ) % 3 == 0 )
itr. fjerne ( ) ;
}
System . ute . println ( ' \n Etter fjerning av Odd ArrayList-elementer' ) ;
til ( int Jeg = 0 ; Jeg < demoArrList. størrelse ( ) ; Jeg ++ )
{
System . ute . skrive ut ( demoArrList. få ( Jeg ) + ' ' ) ;
}
}
}
Beskrivelse av koden ovenfor:
- Først opprettes ArrayList og deretter et multiplum av ' 2 ' settes inn til området ' tjue ' ved hjelp av ' til ' Løkke.
- Deretter erklærer du en ' iterator ” metodeobjekt for å vise elementene i ArrayList på konsollen.
- Deretter bruker du ' har Neste ()”-metoden med iteratorobjektet for å gå gjennom alle gjenværende ArrayList-elementer.
- Etter det, ' hvis '-setning brukes til å sjekke elementene som er fullt delbare med ' 3 ' inni det.
- Og så ' fjerne ()'-metoden brukes til å slette elementene som returneres av ' hvis ' uttalelse.
- Til slutt har den oppdaterte ArrayList blitt vist ved å bruke ' til ' Løkke.
Etter kompileringen:
Utdataene viser de spesifikke elementene, som er delbare med tre og fjernet fra ArrayList ved hjelp av en iteratormetode.
Eksempel 2: Fjerning av alle elementer fra samlingen
For å fjerne alle gjenværende elementer i samlingen, kan iteratormetoden brukes sammen med dens ' fjerne ()»-metoden som vist nedenfor:
import java.util.* ;klasse Tomhet
{
offentlig statisk tomrom hoved- ( String arg [ ] )
{
Vektor < Heltall > testVektor = ny Vektor < Heltall > ( ) ;
testVektor. Legg til ( 18 ) ;
testVektor. Legg til ( tjueen ) ;
testVektor. Legg til ( 25 ) ;
testVektor. Legg til ( 27 ) ;
testVektor. Legg til ( 30 ) ;
Iterator < Heltall > traversere = testVektor. iterator ( ) ;
System . ute . skrive ut ( 'Eksisterende elementer:' ) ;
samtidig som ( traversere. har Neste ( ) )
System . ute . skrive ut ( traversere. neste ( ) + ' ' ) ;
System . ute . skrive ut ( ' \n TestVektoren inneholder ' + testVektor. størrelse ( ) + 'elementer' ) ;
traversere = testVektor. iterator ( ) ;
samtidig som ( traversere. har Neste ( ) )
{
System . ute . skrive ut ( ' \n fjerner' + traversere. neste ( ) ) ;
traversere. fjerne ( ) ;
}
System . ute . println ( ' \n Nå inneholder testVector ' + testVektor. størrelse ( ) + 'elementer' ) ;
}
}
Beskrivelse av kode:
- Først erklærer og initialiser ' Vektor ' med dummy heltallstypeverdier ved å bruke ' Legg til ()»-metoden.
- Deretter oppretter du en iteratormetode som bruker ' har Neste ()» og « neste ()»-metoder. Den viser de eksisterende dataelementene og deres tilsvarende størrelse.
- Deretter bruker du ' har Neste ()'-egenskapen langs iteratorobjektet inne i ' samtidig som ' Løkke.
- Etter det, bruk ' neste ()»-metoden for å velge det kommende elementet, og deretter fjerne () metode kalles for å slette hvert mottakende element.
- På denne måten fjernes alle elementene i vektoren og størrelsen på vektoren vises på konsollen.
Beskrivelse av kode:
Koden ovenfor bekrefter at alle elementer fra samlingen er fjernet.
Eksempel 3: Fjerning av element ved hjelp av ListIterator
ListIterator fungerer på samme måte som iterator-metoden. ListIterator utfører traversering på begge sider i retning forover og bakover. For å fjerne spesifikke elementer fra samlingen ved å bruke ListIterator i Java, besøk koden nedenfor:
import java.util.ArrayList ;import java.util.ListIterator ;
offentlig klasse ListIteratorDemo {
//Initialisering av main()-metoden
offentlig statisk tomrom hoved- ( String [ ] args )
{ //Erklære og initialisere ArrayList
ArrayList < String > voksen = ny ArrayList < String > ( ) ;
voksen Legg til ( 'Hettegenser' ) ;
voksen Legg til ( 'Stang' ) ;
voksen Legg til ( 'Henleys' ) ;
voksen Legg til ( 'Svette' ) ;
voksen Legg til ( 'Uformelt' ) ;
voksen Legg til ( 'Luksus' ) ;
voksen Legg til ( 'Dryfit' ) ;
ListIterator < String > liter = voksen listIterator ( ) ;
System . ute . println ( 'Liste før fjerning' ) ;
til ( int Jeg = 0 ; Jeg < voksen størrelse ( ) ; Jeg ++ )
System . ute . skrive ut ( voksen få ( Jeg ) + ' ' ) ;
samtidig som ( liter. har Neste ( ) ) {
hvis ( liter. neste ( ) . er lik ( 'Svette' ) ) {
liter. fjerne ( ) ;
}
}
System . ute . println ( ' \n Liste etter fjerning' ) ;
til ( int Jeg = 0 ; Jeg < voksen størrelse ( ) ; Jeg ++ )
System . ute . skrive ut ( voksen få ( Jeg ) + ' ' ) ;
}
}
Beskrivelse av koden ovenfor:
- Først erklærer og initialiser ArrayList med dummy String type verdier og vis alle elementene på konsollen ved å bruke ' til ' Løkke.
- Deretter oppretter du et objekt som kaller ' har Neste ()»-metoden i « samtidig som ' Løkke. Den går gjennom alle boelementer.
- Og så ' hvis '-setning brukes som sjekker hvert element med spesifikk tekst, når det elementet samsvarer med ' fjerne ()»-metoden kalles. Den sletter det spesifikke elementet fra ' aArt ' kalt ArrayList.
- Til slutt, vis den modifiserte ArrayList på konsollen.
Etter kompilering:
Øyeblikksbildet bekrefter at det spesifiserte dataelementet er fjernet fra samlingen ved hjelp av ListIterator.
Konklusjon
For å fjerne elementet fra en samling, ' fjerne ()»-metoden til iteratoren brukes. Iteratoren går gjennom ArrayList for å finne de målrettede dataene. Når den er funnet ' fjerne ()»-metoden brukes til å fjerne det spesifikke dataelementet. Den tilbyr en standardisert teknikk på tvers av forskjellige samlinger og forhindrer problemer og forekomsten av flere unntak som ' ConcurrentModificationException '. Sammen med det, ' ListIterator ' kan også være nyttig.