In this tutorial, we will learn about the Java ListIterator interface with the help of an example.
The ListIterator interface of the Java collections framework gives the usefulness to get to components of a rundown.
It is bidirectional. This implies it allows us to emphasize components of a rundown in both the direction.
It extends the Iterator interface.
The List interface provides a listIterator() method that returns an instance of the ListIterator interface.
Methods of ListIterator
The ListIterator interface gives methods that can be used to perform the different procedures on the components of a rundown.
- hasNext() – returns true if there exists an element in the list
- next() – returns the next element of the list
- nextIndex() returns the index of the element that the next() method will return
- previous() – returns the previous element of the list
- previousIndex() – returns the index of the element that the previous() method will return
- remove() – removes the element returned by either next() or previous()
- set() – replaces the element returned by either next() or previous() with the specified element
Example 1: Implementation of ListIterator
In the example beneath, we have actualized the next(), nextIndex() and hasNext() strategies for the ListIterator interface in an array list.
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();
// Using the next() method
int number1 = iterate.next();
System.out.println("Next Element: " + number1);
// Using the nextIndex()
int index1 = iterate.nextIndex();
System.out.println("Position of Next Element: " + index1);
// Using the hasNext() method
System.out.println("Is there any next element? " + iterate.hasNext());
}
}
Output
ArrayList: [1, 3, 2]
Next Element: 1
Position of Next Element: 1
Is there any next element? true
Example 2: Implementation of ListIterator
In the example underneath, we have executed the past() and previousIndex() strategies for the ListIterator interface in an array list.
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();
iterate.next();
iterate.next();
// Using the previous() method
int number1 = iterate.previous();
System.out.println("Previous Element: " + number1);
// Using the previousIndex()
int index1 = iterate.previousIndex();
System.out.println("Position of the Previous element: " + index1);
}
}
Output
ArrayList: [1, 3, 2]
Previous Element: 3
Position of the Previous Element: 0
In the above example, initially, the instance of the Iterator was before 1. Since there was no element before 1 so calling the previous() method will throw an exception.
We then used the next() methods 2 times. Now the Iterator instance will be between 3 and 2.
Hence, the previous() method returns 3.
Thanks for reading! We hope you found this tutorial helpful and we would love to hear your feedback in the Comments section below. And show us what you’ve learned by sharing your photos and creative projects with us.