logo

Iterator i Java

I Java, an Iterator är en av Java-markörerna. Java Iterator är ett gränssnitt som praktiseras för att iterera över en samling Java-objektkomponenter i sin helhet en efter en. Det är gratis att använda i programmeringsspråket Java sedan Java 1.2 Collection-ramverket. Det tillhör paketet java.util.

Även om Java Iterator introducerades i Java 1.2, är det fortfarande inte det äldsta tillgängliga verktyget för att gå igenom elementen i Collection-objektet. Den äldsta Iteratorn i Java-programmeringsspråket är Enumerator föregåen Iterator. Java Iterator-gränssnittet efterträder enumerator-iteratorn som praktiserades i början för att gå över vissa tillgängliga samlingar som ArrayLists.

Java Iterator är också känd som universell markör av Java eftersom det är lämpligt för alla klasser i samlingsramverket. Java Iterator hjälper också till med operationer som READ och REMOVE. När vi jämför Java Iterator-gränssnittet med enumeration iterator-gränssnittet kan vi säga att namnen på metoderna som finns tillgängliga i Java Iterator är mer exakta och enkla att använda.

Fördelar med Java Iterator

Iterator i Java blev mycket utbredd på grund av dess många fördelar. Fördelarna med Java Iterator ges enligt följande -

hur man förvandlar en sträng till en int
  • Användaren kan tillämpa dessa iteratorer på vilken som helst av klasserna i samlingsramverket.
  • I Java Iterator kan vi använda både läs- och borttagningsoperationerna.
  • Om en användare arbetar med en for-loop kan de inte modernisera (lägga till/ta bort) samlingen, medan de, om de använder Java Iterator, helt enkelt kan uppdatera samlingen.
  • Java Iterator anses vara den universella markören för samlings-API.
  • Metodnamnen i Java Iterator är mycket enkla och är mycket enkla att använda.

Nackdelar med Java Iterator

Trots de många fördelarna har Java Iterator också olika nackdelar. Nackdelarna med Java Iterator ges nedan -

  • Java Iterator bevarar endast iterationen i framåtriktningen. Med enkla ord är Java Iterator en enkelriktad Iterator.
  • Ersättning och tillägg av en ny komponent godkänns inte av Java Iterator.
  • I CRUD Operations innehåller Java Iterator inte de olika operationerna som CREATE och UPDATE.
  • Jämfört med Spliteratorn stöder Java Iterator inte korsande element i det parallella mönstret, vilket innebär att Java Iterator endast stöder sekventiell iteration.
  • Jämfört med Spliteratorn stöder inte Java Iterator mer tillförlitlig exekvering för att passera bulkvolymen av data.

Hur använder jag Java Iterator?

När en användare behöver använda Java Iterator, är det obligatoriskt för dem att göra en instans av Iterator-gränssnittet från samlingen av objekt som de vill passera över. Därefter upprätthåller den mottagna iteratorn spåret för komponenterna i den underliggande samlingen för att säkerställa att användaren kommer att gå över vart och ett av elementen i samlingen av objekt.

Om användaren modifierar den underliggande samlingen medan den går över en Iterator som leder till den samlingen, kommer Iteratorn vanligtvis att erkänna det och kommer att kasta ett undantag nästa gång när användaren försöker hämta nästa komponent från Iteratorn.

byt namn på katalogen på linux

Java Iterator-metoder

Följande figur visar perfekt klassdiagrammet för Java Iterator-gränssnittet. Den innehåller totalt fyra metoder som är:

  • hasNext()
  • Nästa()
  • avlägsna()
  • forEachRemaining()

De forEachRemaining() metod lades till i Java 8. Låt oss diskutera varje metod i detalj.

    boolean hasNext(): Metoden accepterar inte någon parameter. Det returnerar sant om det finns fler element kvar i iterationen. Om det inte finns fler element kvar, kommer det att returnera falskt.
    Om det inte finns fler element kvar i iterationen, behöver du inte anropa metoden next(). Med enkla ord kan vi säga att metoden används för att avgöra om metoden next() ska anropas eller inte.E nästa():Det liknar hasNext()-metoden. Den accepterar inte heller någon parameter. Den returnerar E, dvs nästa element i genomgången. Om iterationen eller samlingen av objekt inte har fler element kvar att iterera, kastar den NoSuchElementException.standard void remove():Denna metod kräver inte heller några parametrar. Det finns ingen returtyp av denna metod. Huvudfunktionen för denna metod är att ta bort det sista elementet som returneras av iteratorn som går genom den underliggande samlingen. Metoden remove () kan knappast begäras en gång per nästa () metodanrop. Om iteratorn inte stöder borttagningsoperationen, skickar den UnSupportedOperationException. Den kastar också IllegalStateException om nästa metod inte har anropats ännu.standard void forEachRemaining(Konsumentåtgärd):Det är den enda metoden för Java Iterator som tar en parameter. Den accepterar handling som en parameter. Handling är inget annat än det som ska utföras. Det finns ingen returtyp av metoden. Denna metod utför den specificerade operationen på alla de vänstra komponenterna i samlingen tills alla komponenter är förbrukade eller åtgärden ger ett undantag. Undantag som skapas av åtgärd levereras till den som ringer. Om åtgärden är null, kastar den ett NullPointerException.

Exempel på Java Iterator

Nu är det dags att köra ett Java-program för att illustrera fördelen med Java Iterator-gränssnittet. Koden nedan skapar en ArrayList med stadsnamn. Sedan initierar vi en iterator med iteratormetoden () i ArrayList. Därefter korsas listan för att representera varje 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(); } } 

Produktion:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Punkter att komma ihåg

  • Java Iterator är ett gränssnitt som lagts till i Java-programmeringsspråket i Java 1.2 Collection-ramverket. Det tillhör paketet java.util.
  • Det är en av Java-markörerna som övas för att korsa objekten i samlingsramverket.
  • Java Iterator används för att iterera komponenterna i samlingsobjektet en efter en.
  • Java Iterator är också känd som den universella markören för Java eftersom den är lämplig för alla klasser i samlingsramverket.
  • Java Iterator stöder även operationer som READ och REMOVE.
  • Metodnamnen för Iterator-klassen är mycket enkla och lätta att använda jämfört med metodnamnen för Enumeration Iterator.