Kas yra „Iterator“ „Java“ ir kaip jį naudoti?



„Iterator“ „Java“ tinklaraštyje pateiks jums keletą pavyzdžių, kas yra iteratorius ir kaip juos naudoti „Java“

Jei dirbate a ir pasakykite, kad norite atspausdinti seką, čia į paveikslėlį patenka „Java Iterator“. Tokiu būdu galite gauti seką net nepridėdami kiekvienos eilutės spausdinimo sakinio. Taigi, sužinokime apie „Iterator“ .

skirtumas tarp c c # ir c ++

Toliau pateikiamos temos, kurias aptarsiu šiame modulyje:





Pradėkime!

Kas yra iteratorius?

„Java“ daugiausia palaiko keturis skirtingus žymeklius. Jie yra būtent:



  • Surašymas
  • Iteratorius
  • „ListIterator“
  • Skirstytuvas

Kiekvienas iš šių „Java“ žymeklių turi tam tikrų privalumų ir trūkumų. Šiame straipsnyje daugiausia dėmesio skirsime „Iterator“.

Kas dabar yra „Java“ iteratorius?

Iteratorius yra sąsaja, priklausanti kolekcijos sistemai. Tai leidžia jums pereiti kolekciją, prieiti prie duomenų elemento ir pašalinti kolekcijos duomenų elementus.



Jis taip pat laikomas universaliu iteratoriumi, nes jį galite pritaikyti bet kuriam objektas. Naudodami „Iterator“ galite atlikti ir skaitymo, ir pašalinimo operacijas. Tai yra patobulinta Surašymas su papildomomis elemento pašalinamumo funkcijomis.

„Java Iterator“ metodai

„Java iterator“ iš viso turi 4 metodus. Supraskime juos išsamiai.

konvertuoti dešimtainį į dvejetainį pitono kodą
Metodaiapibūdinimas
forEachRemaining (Consumeraction)Jis atlieka veiksmus su kiekvienu elementu tol, kol bus apdoroti visi elementai. Taip pat tol, kol veiksmas neišmeta išimties.
hasNext ()Tai grįžta tikroji vertė, jei kartojant susiduriama su daugeliu elementų.
Kitas()Tai grįžta kitas nurodytas elementas iteracijos metu.
pašalinti ()Šis metodas rišskiria dabartinį elementą. Metimai Neteisėta valstybės išimtis jei bandoma skambinti pašalinti (), prieš kurį neskambinama kitam ().
loginis hasNext ()Tai bus teisinga, jei iteracija turi daugiau elementų.

Pavyzdys:

klasės metodas {public static void main (String [] args) ArrayList list = new ArrayList () list.add ('E') list.add ('D') list.add ('U') list.add ('R ') list.add (' E ') list.add (' K ') list.add (' A ') // Iterator pereiti sąrašą Iterator iterator = list.iterator () System.out.println (' Sąrašo elementai : ') while (iterator.hasNext ()) System.out.print (iterator.next () +' ') System.out.println ()}}

Rezultatas: EDUREKA

Pažvelkime į „Java“ „ListIterator“.

„ListIterator“ „Java“

„ListIterator“ „Java“ yra „Iterator“, leidžiantis vartotojams pereiti kolekciją abiem kryptimis. Jame yra šie metodai:

MetodaiMetodas ir aprašas
void add (Object obj) Įterpia objektą į sąrašą priešais elementą, kurį grąžins kitas skambutis kitam ().
loginis hasNext () Grąžina tiesą, jei yra kitas elementas. Priešingu atveju grąžinama klaidinga.
loginis turi ankstesnį () Grąžina tiesą, jei yra ankstesnis elementas. Priešingu atveju grąžinama klaidinga.
Kitas objektas () Grąžina kitą elementą. „NoSuchElementException“ išmetama, jei nėra kito elemento.
int nextIndex () Grąžina kito elemento indeksą. Jei nėra kito elemento, pateikia sąrašo dydį.
Objektas ankstesnis () Grąžina ankstesnį elementą. „NoSuchElementException“ išmetama, jei nėra ankstesnio elemento.
int previousIndex () Grąžina ankstesnio elemento indeksą. Jei nėra ankstesnio elemento, grąžina -1.
anuliuoti pašalinti () Pašalina dabartinį elementą iš sąrašo. „IllegalStateException“ bus išmetama, jei prieš kitą () arba prieš ankstesnį () bus iškviečiama pašalinti ().
negaliojantis rinkinys (Object obj) Priskiria obj dabartiniam elementui. Tai yra elementas, kurį paskutinį kartą grąžino skambutis kitam () arba ankstesniam ().

Pavyzdys:

public class Lists {public static void main (String args []) {// Sukurti masyvų sąrašą ArrayList al = new ArrayList () // pridėti elementų į masyvų sąrašą al.add ('E') al.add ('D ') al.add (' U ') al.add (' R ') al.add (' E ') al.add (' K ') al.add (' A ') // Naudokite iteratorių al System.out.print ('Originalus al: turinys') Iterator itr = al.iterator () while (itr.hasNext ()) {Object element = itr.next () System.out.print (elementas + '' )} System.out.println () // Keisti objektus, kurie kartojami. ListIterator litr = al.listIterator () while (litr.hasNext ()) {Object element = litr.next () litr.set (elementas + '+') } System.out.print ('Modifikuotas al: turinys') itr = al.iterator () while (itr.hasNext ()) {Object element = itr.next () System.out.print (elementas + '') } System.out.println () // Dabar rodykite sąrašą atgal System.out.print ('Modifikuotas sąrašas atgal:'), o (litr.hasPrevious ()) {Object element = litr.previous () System.out. spausdinti (elementas + '')} System.out.println ()}}

Išvestis:

Originalasturinys al:E D U R E K A
Pakeistaturinys al:IS+D+U+R+IS+Į+ A +
Pakeistasąrašą atgal:Į+Į+IS+R+U+D+ IR +

Pažvelkime į šios iteratoriaus sąsajos „Java“ privalumus ir apribojimus.

„Iterator“ privalumai „Java“

„Java Iterator“ turi šiuos privalumus.

  • Šiuos iteratorius galite naudoti bet kuriai kolekcijos klasei.
  • „Java Iterator“ palaiko abu skaityti taip pat pašalinti operacijos.
  • Jei naudojate už kilpą tu negali atnaujinkite (pridėkite / pašalinkite) kolekciją, o naudodamiesi iteratoriumi galite lengvai atnaujinti kolekciją.
  • Tai yra universalus kolekcijos API žymeklis.
  • Metodo pavadinimai yra labai paprasti ir juos labai lengva naudoti.

„Iterator“ apribojimai „Java“

„Java“ kartotojai turi šiuos trūkumus:

  • Galite atlikti tik pirmyn krypties iteraciją, tai yra „Vienos krypties itteratorius“.
  • „Iterator“ nepalaiko naujo elemento pakeitimo ir pridėjimo.
  • „ListIterator“ yra galingiausias iteratorius, tačiau jis taikomas tik sąraše įdiegtoms klasėms. Taigi tai nėra universalus iteratorius.
  • Kai naudojate CRUD operacijas, tai nepalaiko kūrimo ir atnaujinimo operacijų.
  • Palyginus jį su „Spliterator“, jis neleidžia kartoti elementų lygiagrečiai. Tai reiškia, kad jis palaiko tik nuoseklų kartojimą.
  • Tai nepalaiko geresnio našumo pakartojant didelę duomenų kiekį.

Taip pateksime į šio straipsnio pabaigą, kur sužinojome, kaip veikia „Java“ iteratorius. Tikiuosi, kad jums aišku viskas, kas su jumis buvo pasidalinta šioje pamokoje.

kaip įdiegti hadoop ubuntu

Jei jums pasirodė, kad šis straipsnis „Iterator Java“ yra aktualus, patikrinkite patikima internetinė mokymosi įmonė, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą, pasklido po visą pasaulį.

Mes norime jums padėti kiekviename jūsų kelionės žingsnyje, be to, mes parengiame mokymo programą, skirtą studentams ir specialistams, norintiems būti „Java“ kūrėjais. Kursas sukurtas tam, kad galėtumėte pradėti žaisti „Java“ programavimą ir išmokyti pagrindinių bei pažangių „Java“ koncepcijų kartu su įvairiomis „Java“ sistemomis, tokiomis kaip „Hibernate & Spring“.

Jei kyla klausimų, nedvejodami užduokite visus klausimus komentarų skiltyje „Iterator Java“, ir mūsų komanda mielai atsakys.