logo

Iterators Java valodā

Java valodā an Iterators ir viens no Java kursoriem. Java iterators ir interfeiss, kas tiek praktizēts, lai pa vienam atkārtotu Java objektu komponentu kolekciju. Kopš Java 1.2 Collection ietvara to var bez maksas izmantot Java programmēšanas valodā. Tas pieder java.util pakotnei.

Lai gan Java Iterator tika ieviests Java 1.2 versijā, tas joprojām nav vecākais pieejamais rīks, lai pārvietotos pa kolekcijas objekta elementiem. Vecākais iterators Java programmēšanas valodā ir Enumerator pirms Iterator. Java Iterator interfeiss seko skaitītāja iteratoram, kas tika praktizēts sākumā, lai šķērsotu dažas pieejamas kolekcijas, piemēram, ArrayLists.

Java Iterator ir pazīstams arī kā universāls kursors Java, jo tas ir piemērots visām Collection ietvara klasēm. Java Iterator palīdz arī tādās darbībās kā LASĪT un NOŅEMT. Salīdzinot Java Iterator saskarni ar uzskaitīšanas iteratora saskarni, mēs varam teikt, ka Java Iterator pieejamo metožu nosaukumi ir precīzāki un vienkāršāki lietojami.

Java Iterator priekšrocības

Iterators Java kļuva ļoti izplatīts, pateicoties tā daudzajām priekšrocībām. Java Iterator priekšrocības ir norādītas šādi:

  • Lietotājs var lietot šos iteratorus jebkurai kolekcijas ietvara klasēm.
  • Programmā Java Iterator mēs varam izmantot gan lasīšanas, gan noņemšanas darbības.
  • Ja lietotājs strādā ar for cilpu, viņš nevar modernizēt (pievienot/noņemt) kolekciju, savukārt, ja viņš izmanto Java iteratoru, viņš var vienkārši atjaunināt kolekciju.
  • Java Iterator tiek uzskatīts par kolekcijas API universālo kursoru.
  • Java Iteratora metožu nosaukumi ir ļoti vienkārši un ļoti vienkārši lietojami.

Java Iterator trūkumi

Neskatoties uz daudzajām priekšrocībām, Java Iteratoram ir arī dažādi trūkumi. Java Iterator trūkumi ir norādīti zemāk -

  • Java iterators saglabā iterāciju tikai uz priekšu. Vienkāršiem vārdiem sakot, Java Iterator ir vienvirziena iterators.
  • Java Iterator neapstiprina jauna komponenta aizstāšanu un paplašināšanu.
  • Programmā CRUD Operations Java Iterator nesatur dažādas darbības, piemēram, CREATE un UPDATE.
  • Salīdzinot ar sadalītāju, Java Iterator neatbalsta elementu šķērsošanu paralēlā shēmā, kas nozīmē, ka Java Iterator atbalsta tikai secīgu iterāciju.
  • Salīdzinot ar sadalītāju, Java Iterator neatbalsta uzticamāku izpildi, lai šķērsotu lielapjoma datu apjomu.

Kā lietot Java Iterator?

Ja lietotājam ir jāizmanto Java Iterator, viņam ir obligāti jāizveido Iterator interfeisa eksemplārs no objektu kolekcijas, kurām viņi vēlas pārvietoties. Pēc tam saņemtais iterators uztur pamatā esošās kolekcijas komponentu izsekošanu, lai pārliecinātos, ka lietotājs šķērsos katru no objektu kolekcijas elementiem.

Ja lietotājs modificē pamatā esošo kolekciju, šķērsojot iteratoru, kas ved uz šo kolekciju, iterators parasti to atzīs un nākamreiz, kad lietotājs mēģinās iegūt nākamo komponentu no iteratora, izdarīs izņēmumu.

Java iteratora metodes

Nākamajā attēlā ir lieliski parādīta Java Iterator saskarnes klases diagramma. Tas satur pavisam četras metodes, kas ir:

  • hasNext()
  • Nākamais()
  • noņemt ()
  • forEachRemaining()

The forEachRemaining() metode tika pievienota Java 8. Apspriedīsim katru metodi sīkāk.

    Būla hasNext(): metode nepieņem nevienu parametru. Tas atgriež patieso vērtību, ja iterācijā ir palicis vairāk elementu. Ja vairs nav palicis neviens elements, tas atgriezīsies false.
    Ja iterācijā vairs nav palicis neviens elements, tad nav nepieciešams izsaukt next() metodi. Vienkāršiem vārdiem sakot, mēs varam teikt, ka metode tiek izmantota, lai noteiktu, vai next() metode ir jāizsauc vai nē.E nākamais():Tas ir līdzīgs hasNext() metodei. Tas arī nepieņem nevienu parametru. Tas atgriež E, t.i., nākamo elementu šķērsošanā. Ja iterācijai vai objektu kolekcijai vairs nav atlicis atkārtojamo elementu, tiek parādīts NoSuchElementException.noklusējuma void remove():Šī metode arī neprasa nekādus parametrus. Šai metodei nav atgriešanas veida. Šīs metodes galvenā funkcija ir noņemt pēdējo elementu, ko atgriezis iterators, kas šķērso pamatā esošo kolekciju. Noņemšanas () metodi var pieprasīt gandrīz vienu reizi nākamajā () metodes izsaukumā. Ja iterators neatbalsta noņemšanas darbību, tas izdod UnSupportedOperationException. Tas arī izmet IllegalStateException, ja nākamā metode vēl nav izsaukta.noklusējuma spēkā neesamība forEachRemaining (patērētāja darbība):Tā ir vienīgā Java Iterator metode, kas ņem parametru. Tas pieņem darbību kā parametru. Darbība nav nekas cits kā tas, kas jāveic. Metodei nav atgriešanas veida. Šī metode veic precizēto darbību ar visiem kolekcijas kreisajiem komponentiem, līdz tiek patērēti visi komponenti vai darbība rada izņēmumu. Darbības radītie izņēmumi tiek piegādāti zvanītājam. Ja darbība ir nulle, tā rada NullPointerException.

Java Iterator piemērs

Tagad ir pienācis laiks izpildīt Java programmu, lai ilustrētu Java Iterator saskarnes priekšrocības. Tālāk norādītais kods veido pilsētu nosaukumu ArrayList. Pēc tam mēs inicializējam iteratoru, izmantojot ArrayList iterator () metodi. Pēc tam saraksts tiek šķērsots, lai attēlotu katru elementu.

JavaIteratorExample.java

 import java.io.*; import java.util.*; public class JavaIteratorExample { public static void main(String[] args) { ArrayList cityNames = new ArrayList(); cityNames.add('Delhi'); cityNames.add('Mumbai'); cityNames.add('Kolkata'); cityNames.add('Chandigarh'); cityNames.add('Noida'); // Iterator to iterate the cityNames Iterator iterator = cityNames.iterator(); System.out.println('CityNames elements : '); while (iterator.hasNext()) System.out.print(iterator.next() + ' '); System.out.println(); } } 

Izvade:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Punkti, kas jāatceras

  • Java Iterator ir saskarne, kas pievienota Java programmēšanas valodai Java 1.2 Collection ietvaros. Tas pieder java.util pakotnei.
  • Tas ir viens no Java kursoriem, kas tiek praktizēts, lai šķērsotu kolekcijas sistēmas objektus.
  • Java iterators tiek izmantots kolekcijas objekta komponentu atkārtošanai pa vienam.
  • Java Iterator ir pazīstams arī kā universālais Java kursors, jo tas ir piemērots visām kolekcijas ietvara klasēm.
  • Java Iterator atbalsta arī tādas darbības kā READ un REMOVE.
  • Iterator klases metožu nosaukumi ir ļoti vienkārši un viegli lietojami, salīdzinot ar Enumeration Iterator metožu nosaukumiem.