logo

Iterador en Java

A Java, an Iterador és un dels cursors Java. Iterador de Java és una interfície que es practica per tal d'iterar sobre una col·lecció de components d'objectes Java sencers un per un. Es pot utilitzar gratuïtament en el llenguatge de programació Java des del marc de col·lecció Java 1.2. Pertany al paquet java.util.

Tot i que Java Iterator es va introduir a Java 1.2, encara no és l'eina més antiga disponible per recórrer els elements de l'objecte Col·lecció. L'iterador més antic del llenguatge de programació Java és l'iterador anterior a Enumerator. La interfície Java Iterator succeeix a l'iterador enumerador que es va practicar al principi per recórrer algunes col·leccions accessibles com les ArrayLists.

L'iterador de Java també es coneix com a cursor universal de Java, ja que és apropiat per a totes les classes del framework Collection. L'iterador de Java també ajuda en les operacions com LLEGIR i ELIMINAR. Quan comparem la interfície de Java Iterator amb la interfície de l'iterador d'enumeració, podem dir que els noms dels mètodes disponibles a Java Iterator són més precisos i senzills d'utilitzar.

Avantatges de Java Iterator

L'iterador a Java es va fer molt freqüent a causa dels seus nombrosos avantatges. Els avantatges de Java Iterator es donen de la següent manera:

  • L'usuari pot aplicar aquests iteradors a qualsevol de les classes del marc de col·lecció.
  • A Java Iterator, podem utilitzar les operacions de lectura i eliminació.
  • Si un usuari treballa amb un bucle for, no pot modernitzar (afegir/eliminar) la col·lecció, mentre que, si utilitza l'iterador de Java, simplement pot actualitzar la col·lecció.
  • L'iterador de Java es considera el cursor universal per a l'API de col·lecció.
  • Els noms de mètodes a l'iterador de Java són molt fàcils i són molt senzills d'utilitzar.

Desavantatges de Java Iterator

Malgrat els nombrosos avantatges, el Java Iterator també té diversos desavantatges. Els desavantatges de l'iterador de Java es mostren a continuació:

  • L'iterador de Java només conserva la iteració en la direcció cap endavant. En paraules senzilles, l'iterador de Java és un iterador unidireccional.
  • La substitució i l'extensió d'un component nou no estan aprovades pel Java Iterator.
  • A les operacions CRUD, l'iterador de Java no conté les diferents operacions com CREATE i UPDATE.
  • En comparació amb el Spliterator, Java Iterator no admet elements de travessa en el patró paral·lel, la qual cosa implica que Java Iterator només admet la iteració seqüencial.
  • En comparació amb el Spliterator, Java Iterator no admet una execució més fiable per recórrer el volum massiu de dades.

Com utilitzar Java Iterator?

Quan un usuari necessita utilitzar l'iterador de Java, és obligatori que faci una instància de la interfície de l'iterador a partir de la col·lecció d'objectes que vol travessar. Després d'això, l'iterador rebut manté el rastre dels components de la col·lecció subjacent per assegurar-se que l'usuari recorre cada un dels elements de la col·lecció d'objectes.

Si l'usuari modifica la col·lecció subjacent mentre passa per un iterador que condueix a aquesta col·lecció, l'iterador normalment la reconeixerà i llançarà una excepció la propera vegada que l'usuari intentarà obtenir el següent component de l'iterador.

Mètodes d'iterador de Java

La figura següent mostra perfectament el diagrama de classes de la interfície Java Iterator. Conté un total de quatre mètodes que són:

  • hasNext()
  • Pròxim()
  • eliminar ()
  • forEachRemaining()

El forEachRemaining() El mètode es va afegir a Java 8. Parlem de cada mètode en detall.

    booleà hasNext(): El mètode no accepta cap paràmetre. Retorna true si queden més elements a la iteració. Si no queden més elements, tornarà fals.
    Si no queden més elements a la iteració, no cal cridar al mètode next(). En paraules senzilles, podem dir que el mètode s'utilitza per determinar si el mètode next() s'ha d'anomenar o no.E següent():És similar al mètode hasNext(). Tampoc accepta cap paràmetre. Retorna E, és a dir, el següent element del recorregut. Si la iteració o la col·lecció d'objectes ja no li queden elements per iterar, llavors llança la NoSuchElementException.per defecte void remove():Aquest mètode tampoc requereix cap paràmetre. No hi ha cap tipus de retorn d'aquest mètode. La funció principal d'aquest mètode és eliminar l'últim element retornat per l'iterador que travessa la col·lecció subjacent. El mètode remove () no es pot sol·licitar gairebé una vegada per la següent trucada del mètode (). Si l'iterador no admet l'operació d'eliminació, llança l'excepció UnSupportedOperationException. També llança l'IllegalStateException si encara no s'ha cridat el següent mètode.void per defecte per a cada restant (acció del consumidor):És l'únic mètode de Java Iterator que pren un paràmetre. Accepta l'acció com a paràmetre. L'acció no és res més que això s'ha de fer. No hi ha cap tipus de retorn del mètode. Aquest mètode realitza l'operació particularitzada en tots els components esquerre de la col·lecció fins que es consumeixen tots els components o l'acció produeix una excepció. Les excepcions llançades per l'acció s'entreguen a la persona que truca. Si l'acció és nul·la, llavors llança una NullPointerException.

Exemple d'iterador de Java

Ara és el moment d'executar un programa Java per il·lustrar l'avantatge de la interfície Java Iterator. El codi següent produeix una ArrayList de noms de ciutats. A continuació, inicialitzem un iterador aplicant el mètode iterador () de la ArrayList. Després d'això, es recorre la llista per representar cada element.

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(); } } 

Sortida:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Punts a recordar

  • El Java Iterator és una interfície afegida al llenguatge de programació Java al marc de la col·lecció Java 1.2. Pertany al paquet java.util.
  • És un dels Cursors Java que es practiquen per recórrer els objectes del marc de col·lecció.
  • El Java Iterator s'utilitza per iterar els components de l'objecte de col·lecció un per un.
  • L'iterador de Java també es coneix com el cursor universal de Java, ja que és apropiat per a totes les classes del marc de col·lecció.
  • El Java Iterator també admet operacions com READ i REMOVE.
  • Els noms de mètodes de la classe Iterator són molt simples i fàcils d'utilitzar en comparació amb els noms de mètodes de Enumeration Iterator.