logo

Итератор в Java

В Java, an Итератор е един от курсорите на Java. Итератор на Java е интерфейс, който се практикува, за да се обхожда цяла колекция от Java обектни компоненти един по един. Той е безплатен за използване в езика за програмиране Java от рамката на колекцията Java 1.2. Принадлежи към пакета java.util.

Въпреки че Java Iterator беше въведен в Java 1.2, той все още не е най-старият наличен инструмент за преминаване през елементите на обекта Collection. Най-старият итератор в езика за програмиране Java е предшестващият итератор Enumerator. Интерфейсът на Java Iterator наследява итератора на изброителя, който се практикуваше в началото за преминаване през някои достъпни колекции като ArrayLists.

Итераторът на Java е известен също като универсален курсор на Java, тъй като е подходящ за всички класове на рамката на колекцията. Java Iterator също помага при операции като READ и REMOVE. Когато сравняваме интерфейса на Java Iterator с интерфейса на итератора за изброяване, можем да кажем, че имената на методите, налични в Java Iterator, са по-точни и лесни за използване.

Предимства на Java Iterator

Итераторът в Java стана много разпространен поради многобройните си предимства. Предимствата на Java Iterator са дадени както следва -

str.replace в java
  • Потребителят може да приложи тези итератори към всеки от класовете на рамката на колекцията.
  • В Java Iterator можем да използваме и двете операции за четене и премахване.
  • Ако потребител работи с for цикъл, той не може да модернизира (добави/премахне) колекцията, докато, ако използва Java Iterator, може просто да актуализира колекцията.
  • Итераторът на Java се счита за универсален курсор за API за събиране.
  • Имената на методите в Java Iterator са много лесни и са много лесни за използване.

Недостатъци на Java Iterator

Въпреки многобройните предимства, Java Iterator има и различни недостатъци. Недостатъците на Java Iterator са дадени по-долу -

  • Итераторът на Java запазва итерацията само в посока напред. С прости думи, Java Iterator е еднопосочен итератор.
  • Замяната и разширението на нов компонент не се одобряват от Java Iterator.
  • В CRUD Operations Java Iterator не поддържа различните операции като CREATE и UPDATE.
  • В сравнение със Spliterator, Java Iterator не поддържа преминаващи елементи в паралелния модел, което означава, че Java Iterator поддържа само последователна итерация.
  • В сравнение със Spliterator, Java Iterator не поддържа по-надеждно изпълнение за преминаване на големия обем от данни.

Как да използвам Java Iterator?

Когато даден потребител трябва да използва Java Iterator, тогава за него е задължително да направи екземпляр на интерфейса на Iterator от колекцията от обекти, през които желае да премине. След това полученият итератор поддържа следата на компонентите в основната колекция, за да се увери, че потребителят ще премине през всеки от елементите на колекцията от обекти.

Ако потребителят модифицира основната колекция, докато преминава през итератор, водещ до тази колекция, тогава итераторът обикновено ще го потвърди и ще хвърли изключение следващия път, когато потребителят ще се опита да получи следващия компонент от итератора.

Методи на Java Iterator

Следващата фигура перфектно показва класовата диаграма на интерфейса на Java Iterator. Той съдържа общо четири метода, които са:

  • hasNext()
  • следващия()
  • Премахване()
  • forEachRemaining()

The forEachRemaining() беше добавен в Java 8. Нека обсъдим всеки метод в детайли.

    булев hasNext(): Методът не приема никакъв параметър. Връща истина, ако в итерацията са останали още елементи. Ако няма останали елементи, тогава ще се върне false.
    Ако няма останали елементи в итерацията, тогава няма нужда да се извиква методът next(). С прости думи можем да кажем, че методът се използва за определяне дали методът next() да бъде извикан или не.E следващ():Подобен е на метода hasNext(). Освен това не приема нито един параметър. Връща E, т.е. следващият елемент в обхода. Ако итерацията или колекцията от обекти няма повече останали елементи за итерация, тогава тя хвърля NoSuchElementException.по подразбиране void премахване ():Този метод също не изисква никакви параметри. Този метод няма тип връщане. Основната функция на този метод е да премахне последния елемент, върнат от итератора, преминаващ през основната колекция. Методът за премахване () може да бъде заявен едва ли веднъж при следващо извикване на метод (). Ако итераторът не поддържа операцията за премахване, тогава той хвърля UnSupportedOperationException. Той също така хвърля IllegalStateException, ако следващият метод все още не е извикан.по подразбиране void forEachRemaining(Потребителско действие):Това е единственият метод на Java Iterator, който приема параметър. Приема действието като параметър. Действието не е нищо друго освен това, което трябва да се извърши. Няма тип връщане на метода. Този метод изпълнява определената операция върху всички леви компоненти на колекцията, докато всички компоненти бъдат изразходвани или действието хвърли изключение. Изключенията, хвърлени от действие, се доставят на повикващия. Ако действието е null, тогава то хвърля NullPointerException.

Пример за Java Iterator

Сега е време да изпълним Java програма, за да илюстрираме предимството на интерфейса на Java Iterator. Кодът по-долу създава ArrayList от имена на градове. След това инициализираме итератор, прилагайки метода iterator () на ArrayList. След това списъкът се преминава, за да представи всеки елемент.

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

Изход:

 CityNames elements: Delhi Mumbai Kolkata Chandigarh Noida 

Точки за запомняне

  • Java Iterator е интерфейс, добавен в езика за програмиране на Java в рамката на колекцията Java 1.2. Принадлежи към пакета java.util.
  • Това е един от курсорите на Java, които се практикуват за преминаване през обектите на рамката за събиране.
  • Java Iterator се използва за итериране на компонентите на обекта на колекцията един по един.
  • Итераторът на Java е известен също като универсален курсор на Java, тъй като е подходящ за всички класове на рамката на колекцията.
  • Java Iterator също поддържа операции като READ и REMOVE.
  • Имената на методите на класа Iterator са много прости и лесни за използване в сравнение с имената на методите на Enumeration Iterator.