Kaip naudoti iteratoriaus metodą elementui pašalinti iš „Java“ kolekcijos?

Kaip Naudoti Iteratoriaus Metoda Elementui Pasalinti Is Java Kolekcijos



iteratorius “ metodas siūlo saugų ir paprastą būdą pašalinti arba ištrinti konkrečius duomenų elementus iš kolekcijos kartojant ją. Tai apsaugo nuo ' ConcurrentModificationException “, kuris atsiranda, kai patobulintas ciklas bando modifikuoti kolekciją. Jis saugo dabartinės padėties seką ir suteikia programuotojams galimybę judėti į priekį ir prireikus pašalinti pagrindinius elementus.

Šiame tinklaraštyje demonstruojamas elemento pašalinimo iš kolekcijos procesas naudojant iteratoriaus metodą.







Kaip naudoti iteratoriaus metodą elementui pašalinti iš „Java“ kolekcijos?

Iteratoriaus metodas yra vienakryptis ir gali būti naudojamas su įvairiais rinkinių tipais, įskaitant ' ArrayList“, „LinkedList “ ir tt. Tai siūlo vienodą elementų pašalinimo iš bet kurios kolekcijos, kuri įgyvendina „ Pakartojama “ sąsaja.



Pažvelkime į keletą pavyzdžių, kad geriau suprastume iteratoriaus metodą:



1 pavyzdys: konkrečių elementų pašalinimas iš kolekcijos naudojant iteratoriaus metodą

Iteratoriaus metodas gali būti naudojamas su ' jeigu “ teiginius arba kilpas, kad pasirinktumėte nurodytus elementus. Ir tada ' pašalinti ()“ metodas naudojamas ištrynimo operacijai atlikti, kaip parodyta toliau:





importuoti java.util.* ;
klasė IterExam
{
viešas statinis tuštuma pagrindinis ( Styga [ ] args )
{
ArrayList < Sveikasis skaičius > demoArrList = naujas ArrayList < Sveikasis skaičius > ( ) ;
dėl ( tarpt i = 0 ; i <= dvidešimt ; i = i + 2 )
{
demoArrList. papildyti ( i ) ;
}
Iteratorius < Sveikasis skaičius > itr = demoArrList. iteratorius ( ) ;
Sistema . išeiti . println ( 'Pateiktas ArrayList:' ) ;

dėl ( tarpt i = 0 ; i < demoArrList. dydis ( ) ; i ++ )
{
Sistema . išeiti . spausdinti ( demoArrList. gauti ( i ) + ' ' ) ;
}
kol ( itr. hasNext ( ) )
{
jeigu ( itr. Kitas ( ) % 3 == 0 )
itr. pašalinti ( ) ;
}
Sistema . išeiti . println ( \n Pašalinus nelyginius masyvo sąrašo elementus' ) ;
dėl ( tarpt i = 0 ; i < demoArrList. dydis ( ) ; i ++ )
{
Sistema . išeiti . spausdinti ( demoArrList. gauti ( i ) + ' ' ) ;
}
}
}

Aukščiau pateikto kodo aprašymas:

  • Pirmiausia sukuriamas ArrayList, o tada kartotinis 2 “ įterpiamas iki diapazono „ dvidešimt “, naudojant “ dėl “ kilpa.
  • Tada paskelbkite „ iteratorius “ metodo objektas, kad būtų rodomi ArrayList elementai konsolėje.
  • Tada naudokite „ hasNext ()“ metodas su iteratoriaus objektu pereiti per visus esančius ArrayList elementus.
  • Po to „ jeigu ' teiginys naudojamas norint patikrinti elementus, kurie visiškai dalijasi iš ' 3 “ jo viduje.
  • Tada ' pašalinti ()“ metodas naudojamas elementams, kuriuos grąžino „ jeigu “ pareiškimas.
  • Galų gale atnaujintas „ArrayList“ buvo rodomas naudojant „ dėl “ kilpa.

Po kompiliacijos:



Išvestyje rodomi konkretūs elementai, kurie dalijasi iš trijų ir pašalinami iš ArrayList naudojant iteratoriaus metodą.

2 pavyzdys: visų elementų pašalinimas iš kolekcijos

Norėdami pašalinti visus esamus kolekcijos elementus, iteratoriaus metodą galima naudoti kartu su jo „ pašalinti ()“ metodą, kaip parodyta toliau:

importuoti java.util.* ;
klasė Tuštuma
{
viešas statinis tuštuma pagrindinis ( Styga arg [ ] )
{
Vektorius < Sveikasis skaičius > testasVektorius = naujas Vektorius < Sveikasis skaičius > ( ) ;
testasVektorius. papildyti ( 18 ) ;
testasVektorius. papildyti ( dvidešimt vienas ) ;
testasVektorius. papildyti ( 25 ) ;
testasVektorius. papildyti ( 27 ) ;
testasVektorius. papildyti ( 30 ) ;

Iteratorius < Sveikasis skaičius > skersai = testasVektorius. iteratorius ( ) ;
Sistema . išeiti . spausdinti ( 'Esami elementai:' ) ;
kol ( skersai. hasNext ( ) )
Sistema . išeiti . spausdinti ( skersai. Kitas ( ) + ' ' ) ;
Sistema . išeiti . spausdinti ( \n TestVector yra ' + testasVektorius. dydis ( ) + 'elementai' ) ;
skersai = testasVektorius. iteratorius ( ) ;
kol ( skersai. hasNext ( ) )
{
Sistema . išeiti . spausdinti ( \n pašalinimas ' + skersai. Kitas ( ) ) ;
skersai. pašalinti ( ) ;
}
Sistema . išeiti . println ( \n Dabar testVector yra ' + testasVektorius. dydis ( ) + 'elementai' ) ;
}
}

Kodo aprašymas:

  • Pirmiausia paskelbkite ir inicijuokite ' Vektorius “ su tuščiųjų sveikųjų skaičių tipo reikšmėmis, naudojant „ papildyti ()“ metodą.
  • Tada sukurkite iteratoriaus metodą, kuris naudoja „ hasNext ()“ ir „ Kitas ()“ metodus. Jame rodomi esami duomenų elementai ir atitinkamas jų dydis.
  • Tada naudokite „ hasNext ()“ ypatybę palei iteratoriaus objektą, esantį „ kol “ kilpa.
  • Po to naudokite „ Kitas ()“ metodą, kad pasirinktumėte būsimą elementą, o tada pašalinti () metodas iškviečiamas norint ištrinti kiekvieną priimantį elementą.
  • Tokiu būdu pašalinami visi Vektoriaus elementai ir konsolėje rodomas Vektoriaus dydis.

Kodo aprašymas:

Aukščiau pateiktas kodas patvirtina, kad visi kolekcijos elementai buvo pašalinti.

3 pavyzdys: Elemento pašalinimas naudojant ListIterator

ListIterator veikia panašiai kaip iteratoriaus metodas. ListIterator atlieka judėjimą iš abiejų pusių pirmyn ir atgal. Norėdami pašalinti konkrečius elementus iš kolekcijos naudodami „Java“ „ListIterator“, apsilankykite toliau pateiktame kode:

importuoti java.util.ArrayList ;
importuoti java.util.ListIterator ;
viešas klasė ListIteratorDemo {

//Main() metodo inicijavimas
viešas statinis tuštuma pagrindinis ( Styga [ ] args )
{ //ArrayList deklaravimas ir inicijavimas
ArrayList < Styga > Suaugęs = naujas ArrayList < Styga > ( ) ;
Suaugęs papildyti ( 'Džemperis' ) ;
Suaugęs papildyti ( 'Stulpas' ) ;
Suaugęs papildyti ( 'Henlis' ) ;
Suaugęs papildyti ( 'prakaitas' ) ;
Suaugęs papildyti ( 'atsitiktinis' ) ;
Suaugęs papildyti ( 'prabanga' ) ;
Suaugęs papildyti ( 'Dryfit' ) ;


ListIterator < Styga > litras = Suaugęs listIterator ( ) ;
Sistema . išeiti . println ( „Sąrašas prieš pašalinimą“ ) ;
dėl ( tarpt i = 0 ; i < Suaugęs dydis ( ) ; i ++ )
Sistema . išeiti . spausdinti ( Suaugęs gauti ( i ) + ' ' ) ;
kol ( litras. hasNext ( ) ) {
jeigu ( litras. Kitas ( ) . lygus ( 'prakaitas' ) ) {
litras. pašalinti ( ) ;
}
}
Sistema . išeiti . println ( \n Sąrašas po pašalinimo' ) ;
dėl ( tarpt i = 0 ; i < Suaugęs dydis ( ) ; i ++ )
Sistema . išeiti . spausdinti ( Suaugęs gauti ( i ) + ' ' ) ;
}
}

Aukščiau pateikto kodo aprašymas:

  • Pirmiausia deklaruokite ir inicijuokite „ArrayList“ su „fiktyviomis String“ tipo reikšmėmis ir parodykite visus elementus konsolėje naudodami „ dėl “ kilpa.
  • Tada sukurkite objektą, kuris vadinasi hasNext ()“ metodas viduje „ kol “ kilpa. Jis kerta visus esančius elementus.
  • Tada ' jeigu ' naudojamas teiginys, kuris patikrina kiekvieną elementą su konkrečiu tekstu, kai tas elementas atitinka ' pašalinti ()“ vadinamas metodas. Jis ištrina konkretų elementą iš „ aArt “, pavadintas ArrayList.
  • Pabaigoje konsolėje parodykite modifikuotą ArrayList.

Po kompiliavimo:

Momentinė nuotrauka patvirtina, kad nurodytas duomenų elementas buvo pašalintas iš rinkinio naudojant ListIterator.

Išvada

Norėdami pašalinti elementą iš kolekcijos, „ pašalinti ()“ naudojamas iteratoriaus metodas. Iteratorius eina per ArrayList, kad surastų tikslinius duomenis. Kai tik bus rasta „ pašalinti ()“ metodas naudojamas tam konkrečiam duomenų elementui pašalinti. Ji siūlo standartizuotą techniką įvairiose kolekcijose ir apsaugo nuo problemų bei kelių išimčių, tokių kaip „ ConcurrentModificationException “. Kartu su ja „ ListIterator “ taip pat gali būti naudinga.