Java Tutorial/Collections/NavigableMap

Материал из Java эксперт
Перейти к: навигация, поиск

Create NavigableMap from TreeMap

   <source lang="java">

import java.util.Calendar; import java.util.Locale; import java.util.Map; import java.util.NavigableMap; import java.util.TreeMap; public class NavigableMapSample {

 public static void main(String args[]) {
   Calendar now = Calendar.getInstance();
   Locale locale = Locale.getDefault();
   Map<String, Integer> names = now.getDisplayNames(Calendar.DAY_OF_WEEK, Calendar.LONG, locale);
   NavigableMap<String, Integer> nav = new TreeMap<String, Integer>(names);
   System.out.printf("Whole list:%n%s%n", nav);
   System.out.printf("First key: %s\tFirst entry: %s%n", nav.firstKey(), nav.firstEntry());
 }

}</source>





Get ceiling key from NavigableMap

   <source lang="java">

import java.util.Calendar; import java.util.Locale; import java.util.Map; import java.util.NavigableMap; import java.util.TreeMap; public class NavigableMapSample {

 public static void main(String args[]) {
   Calendar now = Calendar.getInstance();
   Locale locale = Locale.getDefault();
   Map<String, Integer> names = now.getDisplayNames(Calendar.DAY_OF_WEEK, Calendar.LONG, locale);
   NavigableMap<String, Integer> nav = new TreeMap<String, Integer>(names);
   System.out.printf("Whole list:%n%s%n", nav);
   System.out.printf("Key ceiling after Sunday: %s%n", nav.ceilingKey("Sunday"));
 }

}</source>





Get first key and first entry from NavigableMap

   <source lang="java">

import java.util.Calendar; import java.util.Locale; import java.util.Map; import java.util.NavigableMap; import java.util.TreeMap; public class NavigableMapSample {

 public static void main(String args[]) {
   Calendar now = Calendar.getInstance();
   Locale locale = Locale.getDefault();
   Map<String, Integer> names = now.getDisplayNames(Calendar.DAY_OF_WEEK, Calendar.LONG, locale);
   NavigableMap<String, Integer> nav = new TreeMap<String, Integer>(names);
   System.out.printf("Whole list:%n%s%n", nav);
   System.out.printf("First key: %s\tFirst entry: %s%n", nav.firstKey(), nav.firstEntry());
 }

}</source>





Get floor key from NavigableMap

   <source lang="java">

import java.util.Calendar; import java.util.Locale; import java.util.Map; import java.util.NavigableMap; import java.util.TreeMap; public class NavigableMapSample {

 public static void main(String args[]) {
   Calendar now = Calendar.getInstance();
   Locale locale = Locale.getDefault();
   Map<String, Integer> names = now.getDisplayNames(Calendar.DAY_OF_WEEK, Calendar.LONG, locale);
   NavigableMap<String, Integer> nav = new TreeMap<String, Integer>(names);
   System.out.printf("Whole list:%n%s%n", nav);
   System.out.printf("Key floor before Sunday: %s%n", nav.floorKey("Sunday"));
 }

}</source>





Get higher key from NavigableMap

   <source lang="java">

import java.util.Calendar; import java.util.Locale; import java.util.Map; import java.util.NavigableMap; import java.util.TreeMap; public class NavigableMapSample {

 public static void main(String args[]) {
   Calendar now = Calendar.getInstance();
   Locale locale = Locale.getDefault();
   Map<String, Integer> names = now.getDisplayNames(Calendar.DAY_OF_WEEK, Calendar.LONG, locale);
   NavigableMap<String, Integer> nav = new TreeMap<String, Integer>(names);
   System.out.printf("Whole list:%n%s%n", nav);
   System.out.printf("Key higher after Sunday: %s%n", nav.higherKey("Sunday"));
 }

}</source>





Get last key and last entry from NavigableMap

   <source lang="java">

import java.util.Calendar; import java.util.Locale; import java.util.Map; import java.util.NavigableMap; import java.util.TreeMap; public class NavigableMapSample {

 public static void main(String args[]) {
   Calendar now = Calendar.getInstance();
   Locale locale = Locale.getDefault();
   Map<String, Integer> names = now.getDisplayNames(Calendar.DAY_OF_WEEK, Calendar.LONG, locale);
   NavigableMap<String, Integer> nav = new TreeMap<String, Integer>(names);
   System.out.printf("Whole list:%n%s%n", nav);
   System.out.printf("Last key: %s\tLast entry: %s%n", nav.lastKey(), nav.lastEntry());
 }

}</source>





Get lower key from NavigableMap

   <source lang="java">

import java.util.Calendar; import java.util.Locale; import java.util.Map; import java.util.NavigableMap; import java.util.TreeMap; public class NavigableMapSample {

 public static void main(String args[]) {
   Calendar now = Calendar.getInstance();
   Locale locale = Locale.getDefault();
   Map<String, Integer> names = now.getDisplayNames(Calendar.DAY_OF_WEEK, Calendar.LONG, locale);
   NavigableMap<String, Integer> nav = new TreeMap<String, Integer>(names);
   System.out.printf("Whole list:%n%s%n", nav);
   System.out.printf("Key lower before Sunday: %s%n", nav.lowerKey("Sunday"));
 }

}</source>





Get navigable key set from NavigableMap

   <source lang="java">

import java.util.Calendar; import java.util.Locale; import java.util.Map; import java.util.NavigableMap; import java.util.TreeMap; public class NavigableMapSample {

 public static void main(String args[]) {
   Calendar now = Calendar.getInstance();
   Locale locale = Locale.getDefault();
   Map<String, Integer> names = now.getDisplayNames(Calendar.DAY_OF_WEEK, Calendar.LONG, locale);
   NavigableMap<String, Integer> nav = new TreeMap<String, Integer>(names);
   System.out.printf("Whole list:%n%s%n", nav);
   System.out.printf("Map before Sunday: %s%n", nav.navigableKeySet());
 }

}</source>





NavigableMap Demo

   <source lang="java">

import java.util.Calendar; import java.util.Locale; import java.util.Map; import java.util.NavigableMap; import java.util.TreeMap; public class NavigableMapSample {

 public static void main(String args[]) {
   Calendar now = Calendar.getInstance();
   Locale locale = Locale.getDefault();
   Map<String, Integer> names = now.getDisplayNames(Calendar.DAY_OF_WEEK, Calendar.LONG, locale);
   NavigableMap<String, Integer> nav = new TreeMap<String, Integer>(names);
   System.out.printf("Whole list:%n%s%n", nav);
 }

}</source>





The NavigableMap Interface

The java.util.NavigableMap interface, a new addition to Java 6, inherits SortedMap to add navigation methods that allows for key/value pair searching.

The java.util.TreeMap class in Java 6 implements NavigableMap.



   <source lang="java">

import java.util.NavigableMap; import java.util.TreeMap; import java.util.Map.Entry; public class NavigableMapDemo {

 public static void main(String[] args) {
   NavigableMap<Integer, String> map = new TreeMap<Integer, String>();
   map.put(2, "two");
   map.put(1, "one");
   map.put(3, "three");
   System.out.println("Original map: " + map + "\n");
   Entry firstEntry = map.pollFirstEntry();
   System.out.println("First entry: " + firstEntry);
   System.out.println("After polling the first entry: " + map + "\n");
   Entry lastEntry = map.pollLastEntry();
   System.out.println("Last entry:" + lastEntry);
   System.out.println("After polling last entry:" + map);
 }

}</source>



Original map: {1=one, 2=two, 3=three}
First entry: 1=one
After polling the first entry: {2=two, 3=three}
Last entry:3=three
After polling last entry:{2=two}