How to work with Java 6’s NavigableSet and NavigableMap

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


package com.example.collection;

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());
			
  }
	
}

Output


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


package com.example.collection;

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()) {
		System.out.println(iterator.next());
	}

	iterator = navigableSet.iterator();

	System.out.println("Sorted Navigable Set :");

	while (iterator.hasNext()) {
		System.out.println(iterator.next());
	}

	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);

  }

}

Output


Original Set :
Z
X
T
B
A
Sorted Navigable Set :
A
B
T
X
Z
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]

Download Source Code

Download it – Navigable-Collection-Example.zip (1kb)

References

  1. NavigableMap JavaDoc
  2. NavigableSet JavaDoc

About the Author

author image
Rajiv Srivastava
Java Lead Engineer, India

Comments

avatar
2 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
DerDennisimran Recent comment authors
newest oldest most voted
DerDennis
Guest
DerDennis

Thank you very much for your code example!

imran
Guest
imran

It really helps me,
Needs more on new java collection API