Ano ang Iterator sa Java at Paano ito magagamit?



Ang Iterator in Java blog ay magbibigay sa iyo ng tamang pagpapakilala sa kung ano ang isang iterator at kung paano gamitin ang mga ito sa Java na may ilang mga halimbawa

Kung nagtatrabaho ka sa a at sabihing nais mong mag-print ng isang pagkakasunud-sunod, doon nagmumula sa larawan ang Iterator sa Java. Sa ganitong paraan maaari mong makuha ang pagkakasunud-sunod kahit na walang pagdaragdag ng pahayag sa pag-print para sa bawat linya. Kaya, alamin natin ang tungkol sa Iterator sa .

Nasa ibaba ang mga paksang tatalakayin ko sa modyul na ito:





Magsimula na tayo!

Ano ang isang iterator?

Pangunahin na sinusuportahan ng Java ang apat na magkakaibang mga cursor. Ang mga ito ay ayon sa:



  • Pagpapatala
  • Iterator
  • ListIterator
  • Splitter

Ang bawat isa sa mga Java cursor na ito ay may ilang mga kalamangan at sagabal. Magtutuon kami sa Iterator sa artikulong ito.

Ngayon, ano ang isang iterator sa Java?

pagbabago ng paghahanap sa halimbawa ng informatica

Iterator ay isang interface na kabilang sa isang framework ng koleksyon. Pinapayagan kang dumaan sa koleksyon, mai-access ang elemento ng data at inaalis ang mga elemento ng data ng koleksyon.



Ito ay isinasaalang-alang din bilang isang Universal iterator dahil maaari mo itong ilapat sa anumang bagay Sa pamamagitan ng paggamit ng isang Iterator, maaari mong maisagawa ang parehong basahin at alisin ang mga pagpapatakbo. Ito ay isang pinabuting bersyon ng Pagpapatala na may mga karagdagang pag-andar ng alisin-kakayahan ng isang elemento.

Mga Paraan ng Java Iterator

Ang Java iterator ay may 4 na mga pamamaraan sa kabuuan. Maunawaan natin ang mga ito nang detalyado.

chef ay isang tool ng orkestra
ParaanPaglalarawan
para saEachRemain (Consumeraction)Ginagawa nito ang mga pagkilos sa bawat isa sa elemento hanggang at maliban kung naproseso ang lahat ng mga elemento. Hanggang sa ang isang pagbubukod ay itinapon ng aksyon.
hasNext ()Ito nagbabalik isang totoong halaga kung ang isang mataas na bilang ng mga elemento ay nakatagpo sa panahon ng pag-ulit.
susunod ()Ito nagbabalik ang susunod na tinukoy na elemento sa panahon ng pag-ulit.
alisin ()Ang pamamaraang ito rinaalis ang kasalukuyang elemento. Nagtatapon IllegalStateException kung ang isang pagtatangka na tawagan alisin ang () na hindi paunahan ng isang tawag sa susunod ().
ang boolean ay mayNext ()Ito ay babalik totoo kung ang pag-ulit ay may maraming mga elemento.

Halimbawa:

klase ng Paraan {public static void main (String [] args) Listahan ng ArrayList = bagong ArrayList () list.add ('E') list.add ('D') list.add ('U') list.add ('R ') list.add (' E ') list.add (' K ') list.add (' A ') // Iterator upang daanan ang listahan Iterator iterator = list.iterator () System.out.println (' Mga elemento ng listahan : ') habang (iterator.hasNext ()) System.out.print (iterator.next () +' ') System.out.println ()}}

Output: EDUREKA

Tingnan natin ang ListIterator sa Java.

ListIterator sa Java

ListIterator sa Java ay isang Iterator na nagbibigay-daan sa mga gumagamit na dumaan sa Koleksyon sa parehong direksyon. Naglalaman ito ng mga sumusunod na pamamaraan:

ParaanParaan at Paglalarawan
walang bisa na idagdag (Object obj) Nagpapasok ng obj sa listahan sa harap ng elemento na ibabalik ng susunod na tawag sa susunod ().
ang boolean ay mayNext () Nagbabalik ng totoo kung mayroong susunod na elemento. Kung hindi man, bumalik na hindi totoo.
boolean hasPrevious () Nagbabalik ng totoo kung mayroong isang nakaraang elemento. Kung hindi man, bumalik na hindi totoo.
Susunod na object () Ibinabalik ang susunod na elemento. Ang isang NoSuchElementException ay itinapon kung walang susunod na elemento.
int nextIndex () Ibinabalik ang index ng susunod na elemento. Kung walang susunod na elemento, ibabalik ang laki ng listahan.
Naunang object () Ibinabalik ang nakaraang elemento. Ang isang NoSuchElementException ay itinapon kung walang nakaraang elemento.
int nakaraangIndex () Ibinabalik ang index ng nakaraang elemento. Kung walang nakaraang elemento, ibabalik ang -1.
walang bisa alisin () Tinatanggal ang kasalukuyang elemento mula sa listahan. Ang isang IllegalStateException ay itinatapon kung alisin () ay tinawag bago ang susunod () o nakaraang () ay ipinatawag.
walang bisa na itinakda (Object obj) Nagtatalaga ng obj sa kasalukuyang elemento. Ito ang elemento na huling ibinalik ng isang tawag sa alinman sa susunod () o nakaraang ().

Halimbawa:

mga pampublikong listahan ng Listahan {public static void main (String args []) {// Lumikha ng isang listahan ng array ArrayList al = new ArrayList () // magdagdag ng mga elemento sa listahan ng array al.add ('E') al.add ('D ') al.add (' U ') al.add (' R ') al.add (' E ') al.add (' K ') al.add (' A ') // Gumamit ng iterator upang maipakita ang mga nilalaman ng al System.out.print ('Orihinal na mga nilalaman ng al:') Iterator itr = al.iterator () habang (itr.hasNext ()) {Object element = itr.next () System.out.print (element + ' )} System.out.println () // Baguhin ang mga bagay na na-iterate ng ListIterator litr = al.listIterator () habang (litr.hasNext ()) {Object element = litr.next () litr.set (element + '+') } System.out.print ('Binago ang mga nilalaman ng al:') itr = al.iterator () habang (itr.hasNext ()) {Object element = itr.next () System.out.print (element + ') } System.out.println () // Ngayon, ipakita ang paatras na listahan ng System.out.print ('Modified list backward:') habang (litr.hasPrevious ()) {Object element = litr.previous () System.out. print (element + '')} System.out.println ()}}

Output:

Orihinalnilalaman ng al:E D U R E K A
Binagonilalaman ng al:AY+D+U+R+AY+SA+ A +
Binagolistahan ng paatras:SA+SA+AY+R+U+D+ AT +

Ngayon, tingnan natin ang mga pakinabang at limitasyon ng interface ng iterator na ito sa Java.

Mga kalamangan ng Iterator sa Java

Ang Iterator sa Java ay may mga sumusunod na kalamangan.

  • Maaari mong gamitin ang mga iterator na ito para sa anumang klase sa Koleksyon.
  • Sinusuportahan ng Iterator sa Java ang pareho basahin pati na rin ang tanggalin operasyon.
  • Kung gumagamit ka para sa loop hindi mo kaya i-update (idagdag / alisin) ang Koleksyon samantalang sa tulong ng isang iterator madali mong mai-update ang Koleksyon.
  • Ito ay isang Universal Cursor para sa Collection API.
  • Ang mga pangalan ng pamamaraan ay napaka-simple at napakadaling gamitin.

Mga limitasyon ng Iterator sa Java

Ang mga Iterator sa Java ay may mga sumusunod na sagabal:

  • Maaari mo lamang maisagawa ang pag-ulit ng direksyon, iyon ang Uni-Directional Iterator.
  • Ang kapalit at pagdaragdag ng isang bagong elemento ay hindi suportado ng Iterator.
  • Ang ListIterator ay ang pinakamakapangyarihang iterator ngunit nalalapat lamang ito para sa mga klase na ipinatupad ng Listahan. Kaya't ito ay hindi isang Universal iterator.
  • Kapag gumamit ka ng Mga Operasyong CRUD, hindi nito sinusuportahan ang paggawa at pag-update ng mga pagpapatakbo.
  • Kapag inihambing mo ito sa Spliterator, hindi ka nito pinapayagan na umulit ng mga elemento na parallel. Nangangahulugan ito na sinusuportahan lamang nito ang Sequential iteration
  • Hindi nito sinusuportahan ang mas mahusay na pagganap upang ulitin ang isang malaking dami ng data.

Dinadala tayo nito sa pagtatapos ng artikulong ito kung saan natutunan namin ang tungkol sa kung paano gumagana ang iterator sa Java. Inaasahan mong malinaw ka sa lahat ng naibahagi sa iyo sa tutorial na ito.

pag-uuri ng pagpapaandar c ++

Kung nakita mo ang artikulong ito sa 'Iterator in Java' na may kaugnayan, suriin ang isang pinagkakatiwalaang kumpanya sa online na pag-aaral na may isang network ng higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo.

Narito kami upang matulungan ka sa bawat hakbang sa iyong paglalakbay, bukod dito, nakakakuha kami ng isang kurikulum na idinisenyo para sa mga mag-aaral at propesyonal na nais na maging isang Java Developer. Ang kurso ay dinisenyo upang bigyan ka ng isang panimula sa pag-program ng Java at sanayin ka para sa parehong core at advanced na mga konsepto ng Java kasama ang iba't ibang mga balangkas ng Java tulad ng Hibernate & Spring.

Kung mahahanap mo ang anumang mga katanungan, huwag mag-atubiling itanong ang lahat ng iyong mga katanungan sa seksyon ng mga komento ng 'Iterator sa Java' at ang aming koponan ay nalulugod na sagutin.