Kuinka käyttää iteraattorimenetelmää elementin poistamiseksi kokoelmasta Javassa?

Kuinka Kayttaa Iteraattorimenetelmaa Elementin Poistamiseksi Kokoelmasta Javassa



' iteraattori ” -menetelmä tarjoaa turvallisen ja helpon tavan poistaa tai poistaa tiettyjä tietoelementtejä kokoelmasta toistettaessa sitä. Se estää '' ConcurrentModificationException ', joka syntyy, kun parannettu for-silmukka yrittää muokata kokoelmaa. Se tallentaa nykyisen sijainnin jäljen ja tarjoaa ohjelmoijille mahdollisuuden siirtyä eteenpäin ja poistaa taustalla olevat elementit tarpeen mukaan.

Tämä blogi esittelee prosessin, jolla elementti poistetaan kokoelmasta käyttämällä iteraattorimenetelmää.







Kuinka käyttää iteraattorimenetelmää elementin poistamiseksi kokoelmasta Javassa?

Iteraattorimenetelmä on yksisuuntainen ja sitä voidaan käyttää eri kokoelmatyyppien kanssa, mukaan lukien ' ArrayList', 'LinkedList ' jne. Se tarjoaa yhtenäisen tavan poistaa elementtejä mistä tahansa kokoelmasta, joka toteuttaa ' Iteroitavissa ' käyttöliittymä.



Katsotaanpa joitain esimerkkejä ymmärtääksemme iteraattorimenetelmää paremmin:



Esimerkki 1: Tiettyjen elementtien poistaminen kokoelmasta Iterator-menetelmällä

Iteraattorimenetelmää voidaan käyttää ' jos ”-lauseita tai silmukoita valitaksesi määritetyt elementit. Ja sitten ' Poista ()' -menetelmää käytetään poistotoiminnon suorittamiseen alla kuvatulla tavalla:





tuonti java.util.* ;
luokkaa IterExam
{
julkinen staattinen mitätön pää ( merkkijono [ ] args )
{
ArrayList < Kokonaisluku > demoArrList = Uusi ArrayList < Kokonaisluku > ( ) ;
varten ( int i = 0 ; i <= kaksikymmentä ; i = i + 2 )
{
demoArrList. lisätä ( i ) ;
}
Iteraattori < Kokonaisluku > itr = demoArrList. iteraattori ( ) ;
Järjestelmä . ulos . println ( 'Tarjottu ArrayList:' ) ;

varten ( int i = 0 ; i < demoArrList. koko ( ) ; i ++ )
{
Järjestelmä . ulos . Tulosta ( demoArrList. saada ( i ) + ' ' ) ;
}
sillä aikaa ( itr. hasNext ( ) )
{
jos ( itr. Seuraava ( ) % 3 == 0 )
itr. Poista ( ) ;
}
Järjestelmä . ulos . println ( ' \n Odd ArrayList -elementtien poistamisen jälkeen' ) ;
varten ( int i = 0 ; i < demoArrList. koko ( ) ; i ++ )
{
Järjestelmä . ulos . Tulosta ( demoArrList. saada ( i ) + ' ' ) ;
}
}
}

Kuvaus yllä olevasta koodista:

  • Ensin luodaan ArrayList ja sitten ' 2 ' lisätään alueelle ' kaksikymmentä '' -sovelluksen avulla varten 'silmukka.
  • Ilmoita seuraavaksi ' iteraattori ” -metodiobjekti näyttää ArrayList-elementit konsolissa.
  • Käytä sitten ' hasNext ()' -menetelmä iteraattoriobjektilla kulkemaan kaikkien ArrayList-elementtien läpi.
  • Sen jälkeen ' jos ' lauseketta käytetään tarkistamaan alkiot, jotka ovat täysin jaettavissa 3 ' sen sisällä.
  • Sitten ' Poista ()' -menetelmää käytetään poistamaan elementit, jotka palautetaan ' jos ”lausunto.
  • Lopulta päivitetty ArrayList on esitetty käyttämällä ' varten 'silmukka.

Kokoonpanon jälkeen:



Tulos näyttää tietyt elementit, jotka jaetaan kolmella ja poistetaan ArrayLististä iteraattorimenetelmällä.

Esimerkki 2: Kaikkien elementtien poistaminen kokoelmasta

Kaikkien kokoelman elementtien poistamiseksi voidaan käyttää iteraattorimenetelmää yhdessä sen ' Poista ()' -menetelmä alla esitetyllä tavalla:

tuonti java.util.* ;
luokkaa Tyhjyys
{
julkinen staattinen mitätön pää ( merkkijono arg [ ] )
{
Vektori < Kokonaisluku > testivektori = Uusi Vektori < Kokonaisluku > ( ) ;
testivektori. lisätä ( 18 ) ;
testivektori. lisätä ( kaksikymmentäyksi ) ;
testivektori. lisätä ( 25 ) ;
testivektori. lisätä ( 27 ) ;
testivektori. lisätä ( 30 ) ;

Iteraattori < Kokonaisluku > kulkea = testivektori. iteraattori ( ) ;
Järjestelmä . ulos . Tulosta ( 'Olemassa olevat elementit:' ) ;
sillä aikaa ( kulkea. hasNext ( ) )
Järjestelmä . ulos . Tulosta ( kulkea. Seuraava ( ) + ' ' ) ;
Järjestelmä . ulos . Tulosta ( ' \n Testivektori sisältää ' + testivektori. koko ( ) + 'elementtejä' ) ;
kulkea = testivektori. iteraattori ( ) ;
sillä aikaa ( kulkea. hasNext ( ) )
{
Järjestelmä . ulos . Tulosta ( ' \n poistaminen' + kulkea. Seuraava ( ) ) ;
kulkea. Poista ( ) ;
}
Järjestelmä . ulos . println ( ' \n Nyt testivektori sisältää ' + testivektori. koko ( ) + 'elementtejä' ) ;
}
}

Koodin kuvaus:

  • Ilmoita ja alusta ensin Vektori ' tyhjän kokonaislukutyypin arvoilla käyttämällä ' lisätä ()' menetelmällä.
  • Luo seuraavaksi iteraattorimenetelmä, joka käyttää ' hasNext ()' ja ' Seuraava ()' -menetelmiä. Se näyttää olemassa olevat tietoelementit ja niitä vastaavan koon.
  • Käytä sitten ' hasNext ()' -ominaisuutta pitkin iteraattoriobjektia ' sillä aikaa 'silmukka.
  • Käytä sen jälkeen ' Seuraava ()' -menetelmää tulevan elementin valitsemiseksi ja sitten Poista () -menetelmää kutsutaan poistamaan jokainen vastaanottava elementti.
  • Tällä tavalla kaikki vektorin elementit poistetaan ja vektorin koko näytetään konsolissa.

Koodin kuvaus:

Yllä oleva koodi vahvistaa, että kaikki elementit kokoelmasta on poistettu.

Esimerkki 3: Elementin poistaminen ListIteratorilla

ListIterator toimii samalla tavalla kuin iteraattorimenetelmä. ListIterator suorittaa liikettä molemmilla puolilla eteen- ja taaksepäin. Voit poistaa tiettyjä elementtejä kokoelmasta Java-ohjelman ListIteratorilla käymällä alla olevassa koodissa:

tuonti java.util.ArrayList ;
tuonti java.util.ListIterator ;
julkinen luokkaa ListIteratorDemo {

//Main()-menetelmän alustus
julkinen staattinen mitätön pää ( merkkijono [ ] args )
{ //ArrayListin ilmoittaminen ja alustaminen
ArrayList < merkkijono > aikuinen = Uusi ArrayList < merkkijono > ( ) ;
aikuinen lisätä ( 'Huppari' ) ;
aikuinen lisätä ( 'napa' ) ;
aikuinen lisätä ( 'Henleys' ) ;
aikuinen lisätä ( 'Hiki' ) ;
aikuinen lisätä ( 'Rento' ) ;
aikuinen lisätä ( 'Luksus' ) ;
aikuinen lisätä ( 'Dryfit' ) ;


ListIterator < merkkijono > litraa = aikuinen listIterator ( ) ;
Järjestelmä . ulos . println ( 'Lista ennen poistamista' ) ;
varten ( int i = 0 ; i < aikuinen koko ( ) ; i ++ )
Järjestelmä . ulos . Tulosta ( aikuinen saada ( i ) + ' ' ) ;
sillä aikaa ( litraa. hasNext ( ) ) {
jos ( litraa. Seuraava ( ) . on yhtä suuri ( 'Hiki' ) ) {
litraa. Poista ( ) ;
}
}
Järjestelmä . ulos . println ( ' \n Luettelo poiston jälkeen' ) ;
varten ( int i = 0 ; i < aikuinen koko ( ) ; i ++ )
Järjestelmä . ulos . Tulosta ( aikuinen saada ( i ) + ' ' ) ;
}
}

Kuvaus yllä olevasta koodista:

  • Ensin määritä ja alusta ArrayList valemerkkijonotyyppiarvoilla ja näytä kaikki konsolin elementit käyttämällä ' varten 'silmukka.
  • Luo seuraavaksi objekti, joka kutsuu ' hasNext ()'-menetelmä ' sillä aikaa 'silmukka. Se kulkee kaikkien asuvien elementtien läpi.
  • Sitten ' jos ' -lausetta käytetään, joka tarkistaa jokaisen elementin tietyllä tekstillä, kun kyseinen elementti vastaa ' Poista ()' -menetelmää kutsutaan. Se poistaa tietyn elementin ' aArt ”nimeltään ArrayList.
  • Näytä lopuksi muokattu ArrayList konsolissa.

Kokoamisen jälkeen:

Tilannekuva vahvistaa, että määritetty tietoelementti on poistettu kokoelmasta ListIteratorin avulla.

Johtopäätös

Jos haluat poistaa elementin kokoelmasta, ' Poista ()' -menetelmää käytetään iteraattorissa. Iteraattori kulkee ArrayListin läpi löytääkseen kohdistetut tiedot. Kun se löytyy ' Poista ()' -menetelmää käytetään kyseisen tietoelementin poistamiseen. Se tarjoaa standardoidun tekniikan eri kokoelmissa ja estää ongelmia ja useita poikkeuksia, kuten ' ConcurrentModificationException ”. Sen ohella ' ListIterator ” voi myös olla hyödyksi.