Ітератор у Java є одним із найпоширеніших курсори в Java Collections Framework . Він використовується для обходу або ітерації елементів колекції один за одним.
- Він використовується для переміщення елементів лише в прямому напрямку.
- Безпечно видаляє елементи під час обходу за допомогою remove().
- Ітератор — це універсальний курсор, який застосовується до всіх типів колекцій — List Set і Queue.
Оголошення ітератора
Ітератор публічного інтерфейсу
Тут E представляє тип елементів, які потрібно повторити.
Створення об'єкта ітератора
Об’єкт Iterator створюється шляхом виклику методу iterator() об’єкта колекції. Тут ми будемо використовувати ітератор для обходу та друку кожного елемента в ArrayList .
JavaКолекція
імена = новий ArrayList<>();
Ітераторitr = names.iterator();
import java.util.ArrayList; import java.util.Iterator; public class Geeks { public static void main(String[] args) { // Create an ArrayList and add some elements ArrayList<String> al = new ArrayList<>(); al.add('A'); al.add('B'); al.add('C'); // Obtain an iterator for the ArrayList Iterator<String> it = al.iterator(); // Iterate through the elements and print each one while (it.hasNext()) { // Get the next element String n = it.next(); System.out.println(n); } } }
Вихід
A B C
Ієрархія Ітератора
Ітератор є частиною пакет java.util і реалізується всіма класами колекції через їхні підінтерфейси.
Ітератор-курсорМетоди інтерфейсу ітератора
Інтерфейс ітератора визначає три методи, перераховані нижче:
- hasNext(): Повертає true, якщо ітерація містить більше елементів.
- наступний(): Повертає наступний елемент ітерації. Це кидає NoSuchElementException якщо більше немає елемента.
- видалити(): Видаляє останній елемент, повернутий next(). Цей метод можна викликати лише один раз за виклик next().
Примітка : метод remove() може створювати два винятки, а саме:
Внутрішня робота
У цьому розділі ми спробуємо зрозуміти, як Java Iterator і його методи працюють внутрішньо. Щоб зрозуміти цю функцію, візьмемо наступний об’єкт LinkedList.
крок 1: Тепер давайте створимо об’єкт Iterator на об’єкті List, як показано нижче:
Ітератор
citiesIterator = cities.iterator(); оновлення java
Ітератор 'citiesIteartor' виглядатиме так:
Крок-1Тут курсор ітератора вказує на перший елемент списку.
Крок 2: Тепер ми запустимо наступний фрагмент коду.
citiesIterator.hasNext();
citiesIterator.next();
Крок-2Коли ми запускаємо наведений вище фрагмент коду, курсор ітератора вказує на перший елемент у списку, як показано на діаграмі вище.
крок 3: Тепер ми запустимо наступний фрагмент коду.
citiesIterator.hasNext();
citiesIterator.next();
Крок-3
Коли ми запускаємо наведений вище фрагмент коду, курсор ітератора вказує на другий елемент у списку, як показано на схемі вище.
крок 4: Виконайте цей процес, щоб досягти курсору ітератора до кінцевого елемента списку.
Крок-4крок 5: Після прочитання останнього елемента, якщо ми запускаємо наведений нижче фрагмент коду, він повертає хибне значення.
citiesIterator.hasNext();

Оскільки курсор ітератора вказує на кінцевий елемент списку hasNext() метод повертає хибне значення.
Примітка: Java Iterator підтримує лише ітерацію в прямому напрямку, тому він відомий як односпрямований курсор. Навпаки, ListIterator є двонаправленим, що дозволяє проходити в обох напрямках.
Ітератор Java: Прямий напрямокприклад: Тут ми будемо використовувати ітератор для обходу та видалення непарних елементів зі списку ArrayList.
Javaimport java.util.ArrayList; import java.util.Iterator; public class Geeks { public static void main(String[] args) { // Creating an ArrayList of Integer type ArrayList<Integer> al = new ArrayList<>(); // Adding elements to the ArrayList for (int i = 0; i < 10; i++) { al.add(i); } // Printing the original list System.out.println('Original List: ' + al); // Creating an Iterator for the ArrayList Iterator<Integer> itr = al.iterator(); // Iterating through the list and removing odd elements while (itr.hasNext()) { // Getting the next element int i = itr.next(); System.out.print(i + ' '); // Removing odd elements if (i % 2 != 0) { itr.remove(); } } System.out.println(); // Printing the modified list after removal of odd elements System.out.println('Modified List: ' + al); } }
Вихід
Original List: [0 1 2 3 4 5 6 7 8 9] 0 1 2 3 4 5 6 7 8 9 Modified List: [0 2 4 6 8]
Пояснення: У наведеному вище прикладі ми створюємо ArrayList з цілих чисел, потім виконуємо його ітерацію за допомогою ітератора та видаляємо всі непарні числа. Він друкує список до і після видалення непарних елементів і друкує змінений список лише з парними числами.