How to work with Java 6′s NavigableSet and NavigableMap

How to work with Java 6′s NavigableSet and NavigableMap:

This is my first published article on  popular site –


Also, writing same article on my blog. Hope it will be helpful for you- Rajiv.

You can use latest Java 6′s Collection API to navigate a set and Map collections. These API gives a lot of flexibility to find out required result from the collection.

1. NavigableMap Example

import java.util.NavigableMap;
import java.util.TreeMap;
public class NavigableMapDemo {
 public static void main(String[] args) {
 NavigableMap<String,Integer> navigableMap=new TreeMap<String, Integer>();
 navigableMap.put("X", 500);
 navigableMap.put("B", 600);
 navigableMap.put("A", 700);
 navigableMap.put("T", 800);
 navigableMap.put("Y", 900);
 navigableMap.put("Z", 200);
 System.out.printf("Descending Set  : %s%n",navigableMap.descendingKeySet());
 System.out.printf("Floor Entry  : %s%n",navigableMap.floorEntry("L"));
 System.out.printf("First Entry  : %s%n",navigableMap.firstEntry());
 System.out.printf("Last Key : %s%n",navigableMap.lastKey());
 System.out.printf("First Key : %s%n",navigableMap.firstKey());
 System.out.printf("Original Map : %s%n",navigableMap);
 System.out.printf("Reverse Map : %s%n",navigableMap.descendingMap());


Descending Set  : [Z, Y, X, T, B, A]
Floor Entry  : B=600
First Entry  : A=700
Last Key : Z
First Key : A
Original Map : {A=700, B=600, T=800, X=500, Y=900, Z=200}
Reverse Map : {Z=200, Y=900, X=500, T=800, B=600, A=700}

2. NavigableSet Example

import java.util.Arrays;
import java.util.Iterator;
import java.util.NavigableSet;
import java.util.TreeSet;
public class NavigableSetDemo {
  public static void main(String[] args) {
 NavigableSet<String> navigableSet = new TreeSet<String>(Arrays.asList(
   "X", "B", "A", "Z", "T"));
 Iterator<String> iterator = navigableSet.descendingIterator();
 System.out.println("Original Set :");
 while (iterator.hasNext()) {
 iterator = navigableSet.iterator();
 System.out.println("Sorted Navigable Set :");
 while (iterator.hasNext()) {
 System.out.printf("Head Set : %s.%n", navigableSet.headSet("X"));
 System.out.printf("Tail Set : %s.%n", navigableSet.tailSet("T", false));
 System.out.printf("Sub Set : %s.%n",
   navigableSet.subSet("B", true, "X", true));
 System.out.printf("Last Element : %s%n", navigableSet.last());
 System.out.printf("First Element : %s%n", navigableSet.first());
 System.out.printf("Reverse Set : %s%n", navigableSet.descendingSet());
 System.out.printf("Original Set : %s%n", navigableSet);


Original Set :
Sorted Navigable Set :
Head Set : [A, B, T].
Tail Set : [X, Z].
Sub Set : [B, T, X].
Last Element : Z
First Element : A
Reverse Set : [Z, X, T, B, A]
Original Set : [A, B, T, X, Z]

One thought on “How to work with Java 6′s NavigableSet and NavigableMap

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s