logo

Iterátor v Javě

V Javě, an Iterátor je jedním z Java kurzorů. Java Iterator je rozhraní, které se praktikuje za účelem iterace celé kolekce objektových komponent Java jednu po druhé. Je zdarma k použití v programovacím jazyce Java od rámce Java 1.2 Collection. Patří do balíčku java.util.

příkaz cp v linuxu

Přestože byl Java Iterator představen v Javě 1.2, stále to není nejstarší dostupný nástroj pro procházení prvky objektu Collection. Nejstarším iterátorem v programovacím jazyce Java je Iterator předcházející Enumerator. Rozhraní Java Iterator následuje po iterátoru enumerátoru, který byl na začátku praktikován pro procházení některých dostupných kolekcí, jako jsou ArrayLists.

Java Iterator je také známý jako univerzální kurzor Java, protože je vhodný pro všechny třídy frameworku Collection. Java Iterator také pomáhá při operacích jako READ a REMOVE. Když porovnáme rozhraní Java Iterator s rozhraním iterátoru výčtu, můžeme říci, že názvy metod dostupných v Java Iterator jsou přesnější a přímočařejší na použití.

Výhody Java Iteratoru

Iterator v Javě se stal velmi rozšířeným díky svým četným výhodám. Výhody Java Iteratoru jsou uvedeny následovně -

  • Uživatel může použít tyto iterátory na kteroukoli z tříd frameworku Collection.
  • V Java Iterator můžeme použít obě operace čtení a odstranění.
  • Pokud uživatel pracuje se smyčkou for, nemůže modernizovat (přidat/odebrat) kolekci, zatímco pokud používá Java Iterator, může kolekci jednoduše aktualizovat.
  • Java Iterator je považován za univerzální kurzor pro Collection API.
  • Názvy metod v Java Iterator jsou velmi snadné a jejich použití je velmi jednoduché.

Nevýhody Java Iteratoru

Přes četné výhody má Java Iterator také různé nevýhody. Nevýhody Java Iteratoru jsou uvedeny níže -

  • Java Iterator zachovává pouze iteraci v dopředném směru. Jednoduše řečeno, Java Iterator je jednosměrný iterátor.
  • Výměna a rozšíření nové komponenty nejsou schváleny Java Iterator.
  • V CRUD Operations, Java Iterator nedrží různé operace jako CREATE a UPDATE.
  • Ve srovnání s Spliteratorem Java Iterator nepodporuje procházení prvků v paralelním vzoru, což znamená, že Java Iterator podporuje pouze sekvenční iteraci.
  • Ve srovnání s Spliteratorem nepodporuje Java Iterator spolehlivější provádění pro procházení velkého objemu dat.

Jak používat Java Iterator?

Když uživatel potřebuje použít Java Iterator, je pro něj povinné vytvořit instanci rozhraní Iteratoru z kolekce objektů, které chtějí procházet. Poté přijatý iterátor udržuje stopu komponent v podkladové kolekci, aby se ujistil, že uživatel bude procházet každý z prvků kolekce objektů.

Pokud uživatel upraví podkladovou kolekci při procházení iterátorem vedoucím k této kolekci, iterátor to obvykle potvrdí a při příštím pokusu o získání další komponenty z iterátoru vyvolá výjimku.

Java connect s mysql

Metody Java Iterator

Následující obrázek dokonale zobrazuje diagram tříd rozhraní Java Iterator. Obsahuje celkem čtyři metody, které jsou:

  • hasNext()
  • další()
  • odstranit()
  • forEachRemaining()

The forEachRemaining() Metoda byla přidána do Java 8. Pojďme diskutovat o každé metodě podrobně.

    boolean hasNext(): Metoda nepřijímá žádný parametr. Vrací hodnotu true, pokud v iteraci zbývá více prvků. Pokud nezbývají žádné další prvky, vrátí hodnotu false.
    Pokud v iteraci nezbývají žádné další prvky, není třeba volat metodu next(). Jednoduše řečeno, můžeme říci, že metoda se používá k určení, zda má být metoda next() volána nebo ne.E další():Je podobná metodě hasNext(). Také nepřijímá žádný parametr. Vrací E, tj. další prvek v procházení. Pokud iteraci nebo kolekci objektů nezbývají žádné další prvky k iteraci, vyvolá výjimku NoSuchElementException.výchozí void remove():Tato metoda také nevyžaduje žádné parametry. Neexistuje žádný návratový typ této metody. Hlavní funkcí této metody je odstranit poslední prvek vrácený iterátorem procházejícím podkladovou kolekcí. Metodu remove () lze vyžádat sotva jednou za další volání metody (). Pokud iterátor nepodporuje operaci odebrání, vyvolá výjimku UnSupportedOperationException. Také vyvolá výjimku IllegalStateException, pokud ještě není zavolána další metoda.výchozí void forEachRemaining (akce spotřebitele):Je to jediná metoda Java Iterator, která přebírá parametr. Jako parametr přijímá akci. Akce není nic jiného než to, co je třeba provést. Neexistuje žádný návratový typ metody. Tato metoda provádí konkrétní operaci na všech levých komponentách kolekce, dokud nejsou všechny komponenty spotřebovány nebo akce nevyvolá výjimku. Výjimky vyvolané akcí jsou doručeny volajícímu. Pokud je akce null, vyvolá výjimku NullPointerException.

Příklad Java Iteratoru

Nyní je čas spustit program Java, abychom ilustrovali výhodu rozhraní Java Iterator. Níže uvedený kód vytváří ArrayList názvů měst. Poté inicializujeme iterátor pomocí metody iterator () z ArrayList. Poté se seznam projde, aby reprezentoval každý prvek.

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

Výstup:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Body k zapamatování

  • Java Iterator je rozhraní přidané v programovacím jazyce Java v rámci Java 1.2 Collection. Patří do balíčku java.util.
  • Je to jeden z Java kurzorů, které se používají k procházení objektů rámce kolekce.
  • Java Iterator se používá k iteraci komponent objektu kolekce jednu po druhé.
  • Java Iterator je také známý jako univerzální kurzor Javy, protože je vhodný pro všechny třídy frameworku Collection.
  • Java Iterator také podporuje operace jako READ a REMOVE.
  • Názvy metod třídy Iterator jsou velmi jednoduché a snadno použitelné ve srovnání s názvy metod Enumeration Iterator.