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

Rajiv Srivastava

Java Lead Engineer, India

2 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
DerDennis
11 years ago

Thank you very much for your code example!

imran
13 years ago

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