How to iterate over a TreeMap in Java?
Given a TreeMap, the task is to iterate this TreeMap in Java. The TreeMap in Java is used to implement Map interface and NavigableMap along with the Abstract Class. We cannot iterate a TreeMap directly using iterators, because TreeMap is not a Collection. So we will have to use TreeMap.entrySet() method. This method returns a collection-view(Set<Map.Entry>) of the mappings contained in this treemap. So we can iterate over key-value pair using getKey() and getValue() methods of Map.Entry. This method is most common and should be used if you need both map keys and values in the loop.
Example 1:
Java
import java.util.Map;
import java.util.TreeMap;
class IterationDemo {
public static void main(String[] arg)
{
Map<String, String> gfg
= new TreeMap<String, String>();
gfg.put( "GFG" , "geeksforgeeks.org" );
gfg.put( "Practice" , "practice.geeksforgeeks.org" );
gfg.put( "Code" , "code.geeksforgeeks.org" );
gfg.put( "Quiz" , "www.geeksforgeeks.org" );
for (Map.Entry<String, String>
entry : gfg.entrySet())
System.out.println(
"[" + entry.getKey()
+ ", " + entry.getValue() + "]" );
}
}
|
Output:
[Code, code.geeksforgeeks.org]
[GFG, geeksforgeeks.org]
[Practice, practice.geeksforgeeks.org]
[Quiz, www.geeksforgeeks.org]
Now let us see traversal over the entries in the TreeMap object. In order to implement, we are considering very simple map elements associativity where we are having three elements say they be “Geeks”, “for”, “Geeks” and be the key value ‘1’, ‘2’ and ‘3’ of integer type. So from this only we are able to get we need to make an object of TreeMap class.
Example 2:
Java
import java.util.*;
class GFG {
public static void main(String[] args)
{
TreeMap<Integer, String> tm
= new TreeMap<Integer, String>();
tm.put( 1 , "Geeks" );
tm.put( 2 , "For" );
tm.put( 3 , "Geeks" );
Set<Map.Entry<Integer, String> > entries
= tm.entrySet();
for (Map.Entry<Integer, String> entry : entries) {
System.out.println(entry.getKey() + "->"
+ entry.getValue());
}
System.out.println();
entries.forEach(entry -> {
System.out.println(entry.getKey() + "->"
+ entry.getValue());
});
System.out.println();
Iterator<Map.Entry<Integer, String> > iterator
= entries.iterator();
Map.Entry<Integer, String> entry = null ;
while (iterator.hasNext()) {
entry = iterator.next();
System.out.println(entry.getKey() + "->"
+ entry.getValue());
}
}
}
|
Output
1->Geeks
2->For
3->Geeks
1->Geeks
2->For
3->Geeks
1->Geeks
2->For
3->Geeks
Last Updated :
07 Dec, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...