Java/JDK 6/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

   <source lang="java">

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

} /*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}

  • /
       </source>