Kā izmantot iteratora metodi, lai noņemtu elementu no Java kolekcijas?

Ka Izmantot Iteratora Metodi Lai Nonemtu Elementu No Java Kolekcijas



' iterators ” metode piedāvā drošu un vienkāršu veidu, kā noņemt vai dzēst konkrētus datu elementus no kolekcijas, atkārtojot to. Tas novērš ' ConcurrentModificationException ”, kas rodas, kad uzlabotā cilpa mēģina modificēt kolekciju. Tas saglabā pašreizējās pozīcijas ierakstu un piedāvā programmētājiem iespēju virzīties uz priekšu un pēc vajadzības noņemt pamatā esošos elementus.

Šajā emuārā ir parādīts process, kā noņemt elementu no kolekcijas, izmantojot iteratora metodi.







Kā izmantot iteratora metodi, lai noņemtu elementu no Java kolekcijas?

Iteratora metode ir vienvirziena, un to var izmantot ar dažādiem kolekcijas veidiem, tostarp “ ArrayList”, “LinkedList u.c. Tas piedāvā vienotu veidu, kā noņemt elementus no jebkuras kolekcijas, kurā tiek ieviests Atkārtojams ” interfeiss.



Apskatīsim dažus piemērus, lai labāk izprastu iteratora metodi:



1. piemērs: konkrētu elementu noņemšana no kolekcijas, izmantojot iteratora metodi

Iteratora metodi var izmantot ar “ ja ” paziņojumus vai cilpas, lai atlasītu norādītos elementus. Un tad ' noņemt ()” metode tiek izmantota, lai veiktu dzēšanas darbību, kā parādīts tālāk:





imports java.util.* ;
klasē IterExam
{
publiski statisks nederīgs galvenais ( Stīga [ ] args )
{
ArrayList < Vesels skaitlis > demoArrList = jauns ArrayList < Vesels skaitlis > ( ) ;
priekš ( starpt i = 0 ; i <= divdesmit ; i = i + 2 )
{
demoArrList. pievienot ( i ) ;
}
Iterators < Vesels skaitlis > itr = demoArrList. iterators ( ) ;
Sistēma . ārā . println ( 'Nodrošināts ArrayList:' ) ;

priekš ( starpt i = 0 ; i < demoArrList. Izmērs ( ) ; i ++ )
{
Sistēma . ārā . drukāt ( demoArrList. gūt ( i ) + ' ' ) ;
}
kamēr ( itr. hasNext ( ) )
{
ja ( itr. Nākamais ( ) % 3 == 0 )
itr. noņemt ( ) ;
}
Sistēma . ārā . println ( ' \n Pēc nepāra masīva saraksta elementu noņemšanas' ) ;
priekš ( starpt i = 0 ; i < demoArrList. Izmērs ( ) ; i ++ )
{
Sistēma . ārā . drukāt ( demoArrList. gūt ( i ) + ' ' ) ;
}
}
}

Iepriekš minētā koda apraksts:

  • Vispirms tiek izveidots ArrayList un pēc tam tiek izveidots daudzkārtnis 2 ' tiek ievietots līdz diapazonam ' divdesmit ' ar '' palīdzību priekš ” cilpa.
  • Pēc tam paziņojiet ' iterators ” metodes objekts, lai konsolē parādītu ArrayList elementus.
  • Pēc tam izmantojiet ' hasNext ()” metode ar iteratora objektu, lai šķērsotu visus esošos ArrayList elementus.
  • Pēc tam ' ja ' paziņojums tiek izmantots, lai pārbaudītu elementus, kas pilnībā dalās ar ' 3 ” tā iekšpusē.
  • Pēc tam ' noņemt ()” metode tiek izmantota, lai izdzēstu elementus, kurus atgriež ja ' paziņojums, apgalvojums.
  • Galu galā atjauninātais ArrayList tika parādīts, izmantojot ' priekš ” cilpa.

Pēc kompilācijas:



Izvadē tiek parādīti konkrētie elementi, kas dalās ar trīs un tiek noņemti no ArrayList, izmantojot iteratora metodi.

2. piemērs: visu elementu noņemšana no kolekcijas

Lai noņemtu visus pastāvošos kolekcijas elementus, iteratora metodi var izmantot kopā ar tās ' noņemt ()” metode, kā parādīts zemāk:

imports java.util.* ;
klasē Tukšums
{
publiski statisks nederīgs galvenais ( Stīga arg [ ] )
{
Vektors < Vesels skaitlis > testvektors = jauns Vektors < Vesels skaitlis > ( ) ;
testvektors. pievienot ( 18 ) ;
testvektors. pievienot ( divdesmitviens ) ;
testvektors. pievienot ( 25 ) ;
testvektors. pievienot ( 27 ) ;
testvektors. pievienot ( 30 ) ;

Iterators < Vesels skaitlis > šķērsot = testvektors. iterators ( ) ;
Sistēma . ārā . drukāt ( 'Esošie elementi:' ) ;
kamēr ( šķērsot. hasNext ( ) )
Sistēma . ārā . drukāt ( šķērsot. Nākamais ( ) + ' ' ) ;
Sistēma . ārā . drukāt ( ' \n Testvektors satur ' + testvektors. Izmērs ( ) + 'elementi' ) ;
šķērsot = testvektors. iterators ( ) ;
kamēr ( šķērsot. hasNext ( ) )
{
Sistēma . ārā . drukāt ( ' \n noņemšana ' + šķērsot. Nākamais ( ) ) ;
šķērsot. noņemt ( ) ;
}
Sistēma . ārā . println ( ' \n Tagad testVector satur ' + testvektors. Izmērs ( ) + 'elementi' ) ;
}
}

Koda apraksts:

  • Vispirms deklarējiet un inicializējiet ' Vektors ' ar fiktīvu veselu skaitļu tipa vērtībām, izmantojot ' pievienot ()” metodi.
  • Pēc tam izveidojiet iteratora metodi, kas izmanto ' hasNext ()' un ' Nākamais ()' metodes. Tas parāda esošos datu elementus un to atbilstošo izmēru.
  • Pēc tam izmantojiet ' hasNext ()” rekvizītu gar iteratora objektu iekšpusē “ kamēr ” cilpa.
  • Pēc tam izmantojiet ' Nākamais ()” metodi, lai atlasītu gaidāmo elementu, un pēc tam noņemt () metode tiek izsaukta, lai dzēstu katru saņemošo elementu.
  • Tādā veidā visi Vector elementi tiek noņemti un Vector izmērs tiek parādīts konsolē.

Koda apraksts:

Iepriekš minētais kods apstiprina, ka visi kolekcijas elementi ir noņemti.

3. piemērs: Elementa noņemšana, izmantojot ListIterator

ListIterator darbojas līdzīgi kā iteratora metode. ListIterator veic pārvietošanos abās pusēs virzienā uz priekšu un atpakaļ. Lai noņemtu konkrētus elementus no kolekcijas, izmantojot Java ListIterator, apmeklējiet tālāk norādīto kodu:

imports java.util.ArrayList ;
imports java.util.ListIterator ;
publiski klasē ListIteratorDemo {

//Main() metodes inicializācija
publiski statisks nederīgs galvenais ( Stīga [ ] args )
{ //ArrayList deklarēšana un inicializācija
ArrayList < Stīga > pieaudzis = jauns ArrayList < Stīga > ( ) ;
pieaudzis pievienot ( 'Jaka ar kapuci' ) ;
pieaudzis pievienot ( 'Polis' ) ;
pieaudzis pievienot ( 'Henlijs' ) ;
pieaudzis pievienot ( 'Sviedri' ) ;
pieaudzis pievienot ( 'Ikdienišks' ) ;
pieaudzis pievienot ( 'luksusa' ) ;
pieaudzis pievienot ( 'Dryfit' ) ;


ListIterator < Stīga > litrs = pieaudzis listIterator ( ) ;
Sistēma . ārā . println ( 'Saraksts pirms noņemšanas' ) ;
priekš ( starpt i = 0 ; i < pieaudzis Izmērs ( ) ; i ++ )
Sistēma . ārā . drukāt ( pieaudzis gūt ( i ) + ' ' ) ;
kamēr ( litrs. hasNext ( ) ) {
ja ( litrs. Nākamais ( ) . vienāds ( 'Sviedri' ) ) {
litrs. noņemt ( ) ;
}
}
Sistēma . ārā . println ( ' \n Saraksts pēc noņemšanas' ) ;
priekš ( starpt i = 0 ; i < pieaudzis Izmērs ( ) ; i ++ )
Sistēma . ārā . drukāt ( pieaudzis gūt ( i ) + ' ' ) ;
}
}

Iepriekš minētā koda apraksts:

  • Vispirms deklarējiet un inicializējiet ArrayList ar fiktīvajām String tipa vērtībām un parādiet visus elementus konsolē, izmantojot ' priekš ” cilpa.
  • Pēc tam izveidojiet objektu, kas izsauc ' hasNext ()” metode sadaļā “ kamēr ” cilpa. Tas šķērso visus esošos elementus.
  • Pēc tam ' ja ' tiek izmantots paziņojums, kas pārbauda katru elementu ar noteiktu tekstu, ja šis elements atbilst ' noņemt ()” tiek izsaukta metode. Tas izdzēš konkrēto elementu no ' aArt ” ar nosaukumu ArrayList.
  • Beigās konsolē parādiet modificēto ArrayList.

Pēc kompilācijas:

Momentuzņēmums apstiprina, ka norādītais datu elements ir noņemts no kolekcijas, izmantojot ListIterator.

Secinājums

Lai noņemtu elementu no kolekcijas, ' noņemt ()” tiek izmantota iteratora metode. Iterators šķērso ArrayList, lai atrastu mērķa datus. Kad tas ir atrasts ' noņemt ()” metode tiek izmantota, lai noņemtu šo konkrēto datu elementu. Tā piedāvā standartizētu tehniku ​​dažādās kolekcijās un novērš problēmas un vairāku izņēmumu rašanos, piemēram, ' ConcurrentModificationException ”. Kopā ar to ' ListIterator ” arī var būt noderīga.