Here are few Java Iterator examples for your reference. Below are the three ways to iterate a List or Set in Java –
iterator.hasNext()
iterator.forEachRemaining()
methodListIterator
1. Java Iterator Example with iterator.hasNext()
Get Iterator
from a List
and loop over it.
package com.kodehelp.java8;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class JavaIteratorExample1 {
public static void main(final String[] args) {
final List list = Arrays.asList("Java", "Kotlin", "Python", "Scala", "Swift");
final Iterator iterator = list.iterator();
while (iterator.hasNext()) {
final String language = iterator.next();
System.out.println(language);
}
}
}
2. Iterator Example with iterator.forEachRemaining
In Java 8, there is a new forEachRemaining()
method added into the Iterator
. It also provides a Consumer
argument to let us defined how to consume the item of the list.
package com.kodehelp.java8;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class JavaIteratorExample2 {
public static void main(String[] args) {
final List list = Arrays.asList("Java", "Kotlin", "Python", "Scala", "Swift");
final Iterator iterator = list.iterator();
iterator.forEachRemaining(System.out::println);
}
}
3. Iterator Example with ListIterator
Java 8 ListIterator
extends Iterator
to provide extra features like
- Traverse the list in either direction,
next()
andprevious()
- Modify the list during iteration,
add()
andset()
- Get the iterator’s current position in the list,
nextIndex()
andpreviousIndex()
package com.kodehelp.java8;
import java.util.Arrays;
import java.util.List;
import java.util.ListIterator;
public class JavaIteratorExample3 {
public static void main(final String[] args) {
final List list = Arrays.asList("Java", "Kotlin", "Python", "Scala", "Swift");
// get ListIterator, start from list's index 3
final ListIterator iterator1 = list.listIterator(3);
iterator1.forEachRemaining(System.out::println);
// get ListIterator, start from list's index 0
final ListIterator iterator2 = list.listIterator();
iterator2.forEachRemaining(System.out::println);
}
}