НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
Мова програмування Java. W3Schools українською. Уроки для початківців

En

Java Ітератор


Java Ітератор

Iterator – це об’єкт, який можна використовувати для циклічного перегляду колекцій, наприклад ArrayList та HashSet. Він називається "ітератор", тому що "ітерація" є технічним терміном для циклу.

Щоб використовувати ітератор, ви повинні імпортувати його з пакета java.util.


Отримання ітератора

Метод iterator() можна використовувати для отримання Iterator для будь-якої колекції:

Приклад

// Імпорт класу ArrayList та класу Iterator
import java.util.ArrayList;
import java.util.Iterator;

public class Main {
  public static void main(String[] args) {

    // Зробити колекцію
    ArrayList<String> cars = new ArrayList<String>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("Mazda");

    // Отримати ітератор
    Iterator<String> it = cars.iterator();

    // Роздрукувати перший елемент
    System.out.println(it.next());
  }
}
Спробуйте самі »

Перебирання колекції

Щоб перебрати колекцію, використовуйте hasNext() і next() методи Iterator:

Приклад

while(it.hasNext()) {
System.out.println(it.next());
}
Спробуйте самі »

Видалення елементів із колекції

Ітератори призначені для легкої зміни колекцій, які вони проходять. Метод remove() може вилучити елементи з колекції під час виконання циклу.

Приклад

Використовуйте ітератор, щоб видалити числа, менші за 10, із колекції:

import java.util.ArrayList;
import java.util.Iterator;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(12);
    numbers.add(8);
    numbers.add(2);
    numbers.add(23);
    Iterator<Integer> it = numbers.iterator();
    while(it.hasNext()) {
      Integer i = it.next();
      if(i < 10) {
        it.remove();
      }
    }
    System.out.println(numbers);
  }
}
Спробуйте самі »

Примітка: Спроба видалити елементи за допомогою циклу for або циклу for-each не спрацює належним чином, оскільки колекція змінює розмір у той самий час, коли код намагається виконати цикл.