Итератор у Јави је један од најчешће коришћених курсори у оквиру Јава Цоллецтионс Фрамеворк . Користи се за прелазак или понављање кроз елементе колекције један по један.
кмл коментар
- Користи се за прелазак елемената само у правцу напред.
- Безбедно уклања елементе током преласка помоћу ремове().
- Итератор је универзални курсор који се примењује на све типове колекција — скуп листе и ред чекања.
Декларација итератора
јавни интерфејс Итератор
Овде Е представља тип елемената који се понављају.
Креирање објекта итератора
Итератор објекат се креира позивањем методе итератор() на објекту колекције. Овде ћемо користити Итератор за прелазак и штампање сваког елемента у АрраиЛист .
JavaЦоллецтион
имена = нова листа низова<>();
Итераторитр = намес.итератор();
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
Хијерархија итератора
Итератор је део јава.утил пакет и имплементирају га све класе колекције преко својих подинтерфејса.
Итератор-курсорМетоде интерфејса итератора
Интерфејс итератора дефинише три методе као што је наведено у наставку:
- хасНект(): Враћа тачно ако итерација има више елемената.
- следећи(): Враћа следећи елемент у итерацији. То баца НоСуцхЕлементЕкцептион ако више није присутан ниједан елемент.
- уклони(): Уклања последњи елемент који је вратио нект(). Овај метод се може позвати само једном по позиву нект().
Напомена : ремове() метода може да избаци два изузетка и то на следећи начин:
Интерни рад
У овом одељку ћемо покушати да разумемо како Јава Итератор и његове методе функционишу интерно. Узмимо следећи објекат ЛинкедЛист да бисмо разумели ову функционалност.
1. корак: Сада направимо објекат Итератор на објекту Лист као што је приказано у наставку:
Итератор
цитиИтератор = цитис.итератор();
Итератор 'цитиесИтеартор' ће изгледати овако:
бинарни у бцд
Корак-1Овде Итераторов курсор показује испред првог елемента листе.
2. корак: Сада ћемо покренути следећи исечак кода.
цитиИтератор.хасНект();
цитиИтератор.нект();
Корак-2Када покренемо горњи исечак кода, курсор итератора показује на први елемент на листи као што је приказано на горњем дијаграму.
Корак 3: Сада ћемо покренути следећи исечак кода.
цитиИтератор.хасНект();
цитиИтератор.нект();басх вхиле петља
Корак-3
Када покренемо горњи исечак кода, курсор итератора показује на други елемент на листи као што је приказано на горњем дијаграму.
упоредива листа
4. корак: Урадите овај процес да бисте дошли до курсора итератора до крајњег елемента листе.
Корак-45. корак: Након читања завршног елемента, ако покренемо доњи исечак кода, он враћа лажну вредност.
цитиИтератор.хасНект();

Пошто курсор итератора показује на последњи елемент листе после хасНект() метода враћа лажну вредност.
Напомена: Јава Итератор подржава само итерацију у правцу унапред, тако да је познат као једносмерни курсор. Насупрот томе, ЛистИтератор је двосмеран и омогућава прелазак у оба смера.
Јава Итератор: Правац унапредПример: Овде ћемо користити Итератор за прелазак и уклањање чудних елемената из АрраиЛист-а.
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]
Објашњење: У горњем примеру креирамо АрраиЛист целих бројева, а затим пролазимо кроз њу користећи Итератор и уклањамо све непарне бројеве. Штампа листу пре и после уклањања непарних елемената и штампа измењену листу само са парним бројевима.