Home > Interactive knowledge & Tips n Tricks & other reference stuff > NavigableSet and NavigableMap, a good improvement to TreeSet and TreeMap

NavigableSet and NavigableMap, a good improvement to TreeSet and TreeMap

November 22nd, 2011 87 views Leave a comment Go to comments

NavigableXXX were introduced from JDK 1.6 with the aim of making traversing faster, easier and power full in TreeXXX.

You must be clear with when to use TreeSet and TreeMap in your project after reading Java Collection Framework Doodle Cheat sheet.

Syntax:

List<Integer> list = Arrays.asList(3, 2, 4, 1, 5);
NavigableSet<Integer> ns = new TreeSet<Integer>(list);

Iterator<Integer> itr = ns.descendingIterator()

while (itr.hasNext()) {
	int m = itr.next();
	:
}

Points to be noticed

  1. Range selection : NavigableXXX are good for range selection. Like names from amit to arti, decimals from 45 to 90 etc.
  2. Useful navigational methods
  3. E ceiling(E e) – Returns least element >= to given element, or null
    E higher(E e) – Returns least element > given element, or null
    E floor(E e) – Returns greatest element <= given element, or null
    E lower(E e) – Returns greatest element < given element, or null
    E pollFirst() – Gets and removes the first (lowest) element, or null
    E pollLast() – Gets and removes the last (highest) element, or null

  4. Useful view methods

  5. NavigableSet descendingSet()
    – Returns descending view of set
    NavigableSet subSet(E fromElement, boolean fromInc, E toElement, boolean toInc) – Returns view: fromElement -> toElement
    NavigableSet headSet(E toElement, boolean inclusive) – Returns view: -> toElement
    NavigableSet tailSet(E fromElement, boolean inclusive) – Returns view: fromElement ->
    Iterator descendingIterator() – Returns iterator in descending order

  6. All above methods are available in NavigableMap too.
  7. ceilingEntry(K key)
    ceilingKey(K key)
    higherEntry(K key)
    higherKey(K key)
    floorEntry(K key)
    floorKey(K key)
    lowerEntry(K key)
    lowerKey(K key)
    firstEntry()
    pollFirstEntry()
    lastEntry()
    pollLastEntry()
    descendingMap()
    descendingKeySet()
    subMap(K, boolean, K, boolean)
    headMap(K toKey, boolean inclusive)
    tailMap(K fromKey, boolean inclusive)

Amit Gupta

Hey! this is Amit Gupta (amty). By profession, I am a Software Eng. And teaching is my passion. Sometimes I am a teacher, as you can see many technical tutorials on my site, sometimes I am a poet, And sometime just a friend of friends...

  1. No comments yet.