Перебор ArrayList в Java — for, for-each, Iterator и forEach

В этом примере показано, как пройтись по элементам ArrayList тремя разными способами: при помощи цикла for, цикла for-each и интерфейса ListIterator.

Пример 1: Итерация по ArrayList с помощью цикла for

import java.util.ArrayList;

class Main {
  public static void main(String[] args) {
    // Creating an array list
    ArrayList<String> languages = new ArrayList<>();
    languages.add("Java");
    languages.add("JavaScript");
    languages.add("Python");
    System.out.println("ArrayList: " + languages);

    // Using for loop
    System.out.println("Iterating over ArrayList using for loop: ");

    for(int i = 0; i < languages.size(); i++) {
      System.out.print(languages.get(i));
      System.out.print(", ");
    }
  }
}

Вывод:

ArrayList: [Java, JavaScript, Python]
Iterating over ArrayList using for loop:
Java, JavaScript, Python,

В приведённом примере мы создали ArrayList с именем languages. Здесь мы использовали цикл for для доступа к каждому элементу списка по индексу.

Пример 2: Итерация по ArrayList с помощью цикла for-each

import java.util.ArrayList;

class Main {
  public static void main(String[] args) {
    // Creating an array list
    ArrayList<String> languages = new ArrayList<>();
    languages.add("Java");
    languages.add("JavaScript");
    languages.add("Python");
    System.out.println("ArrayList: " + languages);

        // Using forEach loop
    System.out.println("Iterating over ArrayList using for-each loop:");
    for(String language : languages) {
      System.out.print(language);
      System.out.print(", ");
    }
  }
}

Вывод:

ArrayList: [Java, JavaScript, Python]
Iterating over ArrayList using for-each loop:
Java, JavaScript, Python,

Здесь мы использовали цикл for-each для обхода ArrayList и вывода каждого элемента.

Пример 3: Итерация по ArrayList с помощью listIterator()

import java.util.ArrayList;
import java.util.ListIterator;

class Main {
  public static void main(String[] args) {
    // Creating an ArrayList
    ArrayList<Integer> numbers = new ArrayList<>();
    numbers.add(1);
    numbers.add(3);
    numbers.add(2);
    System.out.println("ArrayList: " + numbers);

    // Creating an instance of ListIterator
    ListIterator<Integer> iterate = numbers.listIterator();
    System.out.println("Iterating over ArrayList:");
    while(iterate.hasNext()) {
      System.out.print(iterate.next() + ", ");
    }
  }
}

Вывод:

ArrayList: [1, 3, 2]
Iterating over ArrayList:
1, 3, 2,

В приведённом примере мы использовали метод listIterator() для обхода ArrayList. Здесь:

  • hasNext() — возвращает true, если в списке есть следующий элемент;

  • next() — возвращает следующий элемент списка.

Примечание

Также для обхода ArrayList можно использовать методы ArrayList.iterator() и ArrayList.forEach().