What is Iterator in Java?
Java Iterator is an Interface that is used to iterate over a collection of java object one by one.
When we want to access collection elements, add/remove or process the elements. In order to do all this processing through a Java program, we should be able to traverse through the collection that we are using. This is where the iterator is used.
Java Iterator is a collection framework interface and it is part of the java.util package.
In order to use an Iterator, we need to get the iterator object using the iterator() method of the collection interface.
Java Iterator supports only Forward Direction Iteration. So it is also know as Uni-Directional Cursor.
Java Iterator consists 4 methods :
- hasNext()
- next()
- remove()
- forEachRemaining()
Syntax :
List<String> list = new ArrayList<>();
Iterator<String> iterator = list.iterator();
1. hasNext() Method in Iterator
The hasNext() method is used for checking if there's at least one element left to iterate over.
hasNext() return boolean value based on next element is available or not.
Returns true if the iteration has more elements otherwise false.
2. next() Method in Iterator
The next() method is used for jump on next element and getting from collection.
If hasNext() method return false then there is no need to call next() method.
It is good practice to use hasNext() before calling next().
Lets see example of hasNext() and next() method.
Example 1 : Iterator hasNext() and next() method demo
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IterationDemo {
public static void main(String[] args) {
List<String> list = new ArrayList<>() {{
add("Java");
add("Python");
add("JavaScript");
add("CSharp");
add("PHP");
}};
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
Output :
Java
Python
JavaScript
CSharp
PHP
3. remove() method in Iterator
If we want to remove current element from collection remove() method is used.
Example 2 : remove() method in Iterator
import java.util.ArrayList;
import java.util.Iterator;
public class IterationDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("Java");
list.add("Python");
list.add("JavaScript");
list.add("CSharp");
list.add("PHP");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String str = iterator.next();
System.out.println(str);
if (str.equals("PHP")) {
iterator.remove();
}
}
System.out.println();
for (Iterator<String> iterator2 = list.iterator(); iterator2.hasNext();) {
System.out.println(iterator2.next());
}
}
}
Output :
Java
Python
JavaScript
CSharp
PHP
Java
Python
JavaScript
CSharp
4. forEachRemaining() method in Iterator
forEachRemaining() method introduced in Java 8. We can iterate over collection using forEachRemaining() method.
In above example we used while loop to iterate over collection until last element, now we can use forEachRemaining() method. It is mainly introduced for writing more clear and readable code.
forEachRemaining() method does not return anything. It only performs the given action for each remaining element.
Lets see example.
Example 3 : forEachRemaining() method in Iterator example
import java.util.ArrayList;
import java.util.Iterator;
public class IterationDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("Java");
list.add("Python");
list.add("JavaScript");
list.add("CSharp");
list.add("PHP");
Iterator<String> iterator = list.iterator();
iterator.forEachRemaining( (language)
-> System.out.println(language) );
}
}
Output :
Java
Python
JavaScript
CSharp
PHP
Happy Coding... Happy Learning...
Other Java articles :
Comments
Post a Comment