public class Magellan {
   public static void main(String[] args) {
        TreeMap<String, String> myMap = new TreeMap<String, String>();
   myMap.put("a", "apple");
   myMap.put("d","date");
   myMap.put("f", "fig");
   myMap.put("p", "pear");
   System.out.println("1st after mango:" + myMap.higherKey("f"));
   System.out.println("1st after mango:" + myMap.ceilingKey("f"));
   System.out.println("1st after mango:" + myMap.floorKey("f"));
   SortedMap<String, String> sub = new TreeMap<String, String>();
   sub = myMap.tailMap("f");
   System.out.println("1st after mango:" + sub.firstKey());
   }
}

解决方案 »

  1.   

    我不是特别理解TreeMap的用法。
      

  2.   


    package com.sc.test;import java.util.SortedMap;
    import java.util.TreeMap;public class TreeMapTest {
    public static void main(String[] args) {
    TreeMap<String, String> myMap = new TreeMap<String, String>();
    // 向 HashMap 中放入四个元素
    myMap.put("a", "apple");
    myMap.put("d", "date");
    myMap.put("f", "fig");
    myMap.put("p", "pear");

    /**
     * 返回严格大于给定键的最小键;如果不存在这样的键,则返回 null。
     * 在ASCII表中比f大的值(大于,并且最接近f)
     */
    System.out.println("1st after mango:" + myMap.higherKey("f"));

    /**
     * /**
     * 返回严格大于给定键的最小键;如果不存在这样的键,则返回 null。
     * 在ASCII表中比f大的值(大于等于,并且最接近f)
     */
    System.out.println("1st after mango:" + myMap.ceilingKey("f"));

    /**
     * 返回小于等于给定键的最大键;如果不存在这样的键,则返回 null。
     * 在ASCII表中比f大的值(小于等于,并且最接近f)
     */
    System.out.println("1st after mango:" + myMap.floorKey("f"));

    /**
     * 返回小于等于给定键的最大键;如果不存在这样的键,则返回 null。
     * 在ASCII表中比f大的值(小于,并且最接近f)
     */
    System.out.println("1st after mango:" + myMap.lowerKey("f"));

    SortedMap<String, String> sub = new TreeMap<String, String>();

    /**
     *  返回此映射的部分视图,其键大于等于 f。
     *  sub中的元素就变成了:myMap.put("f", "fig");myMap.put("p", "pear")两个
     */
    sub = myMap.tailMap("f");

    /**
     * 返回当前Map中第一个(最低)键,也是就f,应为ASCII表中p > f。 
     */
    System.out.println("1st after mango:" + sub.firstKey());
    }}
    楼主能否明白?
      

  3.   

    TreeMap只是比较方便排序,它提供的排序:自然排序,定制排序。
      

  4.   

    import java.util.SortedMap;
    import java.util.TreeMap;public class TreeMapTest {
        public static void main(String[] args) {
            TreeMap<String, String> myMap = new TreeMap<String, String>();
            // 向 TreeMap中放入四个元素
            myMap.put("a", "apple");
            myMap.put("d", "date");
            myMap.put("f", "fig");
            myMap.put("p", "pear");
            
            /**
             * 返回严格大于给定键的最小键;如果不存在这样的键,则返回 null。
             * 在ASCII表中比f大的值(大于,并且最接近f)
             */
            System.out.println("higherKey(f):" + myMap.higherKey("f"));
            
            /**
             * 返回大于给定键的最小键;如果不存在这样的键,则返回 null。
             * 在ASCII表中比f大的值(大于等于,并且最接近f)
             */
            System.out.println("ceilingKey(f):" + myMap.ceilingKey("f"));
            
            /**
             * 返回小于等于给定键的最大键;如果不存在这样的键,则返回 null。
             * 在ASCII表中比f大的值(小于等于,并且最接近f)
             */
            System.out.println("floorKey(f)" + myMap.floorKey("f"));
            
            /**
             * 返回小于等于给定键的最大键;如果不存在这样的键,则返回 null。
             * 在ASCII表中比f大的值(小于,并且最接近f)
             */
            System.out.println("lowerKey(f):" + myMap.lowerKey("f"));
            
            SortedMap<String, String> sub = new TreeMap<String, String>();
            
            /**
             *  返回此映射的部分视图,其键大于等于 f。
             *  sub中的元素就变成了:myMap.put("f", "fig");myMap.put("p", "pear")两个
             */
            sub = myMap.tailMap("f");
            
            /**
             * 返回当前Map中第一个(最低)键,也是就f,应为ASCII表中p > f。 
             */
            System.out.println("sub.firstKey():" + sub.firstKey());
        }
    }