An Iterator is an object utilized for iterating over collections, such as ArrayList and HashSet, named so because “iterating” denotes the process of looping through elements in technical jargon.
To employ an Iterator, you need to import it from the java.util package.
The iterator()
method can be used to get an Iterator
for any collection:
// Import the ArrayList class and the Iterator class import java.util.ArrayList; import java.util.Iterator;
public class Main { public static void main(String[] args) {
// Make a collection ArrayList<String> cars = new ArrayList<String>(); cars.add(“Volvo”); cars.add(“BMW”); cars.add(“Ford“); cars.add(“Mazda”);
// Get the iterator Iterator<String> it = cars.iterator();
// Print the first item System.out.println(it.next()); } } |
To iterate through a collection, utilize the hasNext() and next() methods of the Iterator.
while( |
Iterators are intended to facilitate easy modification of the collections they traverse. The remove() method allows for removing items from a collection while iterating.
Utilize an iterator to eliminate all numbers below 10 from a collection.
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); } } |
Note: Attempting to remove items using a for loop or a for-each loop would lead to incorrect behavior, as the collection’s size is changing simultaneously with the loop execution. |