Native lesson simulator
Hash map lookup
Hash the key, jump to a bucket, then compare entries there.
Ada hashes to bucket 2; lookup only scans entries in that bucket.
Flash cards
Review the key moves
What is the main idea behind Java Iterator?
Lesson checks
Practice each idea before moving on
Short Mimo-style checks built from this lesson's code, terms, and sequence.
Which statement best captures the main point of this lesson?
Complete the missing token from the example code.
// Import the ArrayList ___ 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());Put the learning moves in the order that makes the concept easiest to apply.
An Iterator is an object that can be used to loop through collections , like ArrayList and HashSet .
It is called an "iterator" because "iterating" is the technical term for looping.
To use an Iterator, you must import it from the java.util package.
Getting an Iterator
The iterator() method can be used to get an Iterator for any collection:
Example
// 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());
}
}Looping Through a Collection
To loop through a collection, use the hasNext() and next() methods of the Iterator :
Example
while(it.hasNext()) {
System.out.println(it.next());
}Removing Items from a Collection
Iterators are designed to easily change the collections that they loop through. The remove() method can remove items from a collection while looping.
Example
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
Trying to remove items using a for loop or a for-each loop would not work correctly because the collection is changing size at the same time that the code is trying to loop.
The var Keyword with Iterators
You can also use the var keyword with iterators. This avoids repeating the long type name Iterator<String> , since the compiler already knows the type from the collection.
This makes code shorter, but many developers still use the full type for clarity . Since var is valid from Java version 10, you may see it in other code, so it's good to know that it exists:
// Without var Iterator<String> it = cars.iterator();
// With var var it = cars.iterator();Here, var makes the iterator declaration shorter, but the actual type is still Iterator<String> .