解决方案 »

  1.   

    Map是无序的,即使倒序插入也没用,可以用TreeMap
      

  2.   

    用LinkedHashMap
    public static void main(String[] args) {
    Map<Character, Integer> map = new LinkedHashMap<Character, Integer>();
    for (int i = 26; i > 0; i--) {
    map.put((char)(97+i-1), i);
    }
    System.out.println(map.keySet());
    System.out.println(map.values());
    }
      

  3.   

    当然可以了,TreeMap就支持逆序排列,不过默认是按照自然顺序的,需要自己实现Comparator,见下面的代码:
    package learning;import java.util.Comparator;
    import java.util.Map;
    import java.util.TreeMap;public class SortedMapTest {
    public static class ReverseComp implements Comparator<Character>{ @Override
    public int compare(Character o1, Character o2) {
    return o2.compareTo(o1);
    }

    }
    public static void main(String[] args) {

    Map<Character, Integer> orderMap = new TreeMap<Character, Integer>();
    for(int i = 0; i < 26; i++)
    orderMap.put((char)(97 + i), (i + 1));
    System.out.println(orderMap);


    Map<Character, Integer> reverseMap = new TreeMap<Character, Integer>(new ReverseComp());
    for(int i = 0; i < 26; i++)
    reverseMap.put((char)(97 + i), (i + 1));
    System.out.println(reverseMap);

    }}
    输出为:{a=1, b=2, c=3, d=4, e=5, f=6, g=7, h=8, i=9, j=10, k=11, l=12, m=13, n=14, o=15, p=16, q=17, r=18, s=19, t=20, u=21, v=22, w=23, x=24, y=25, z=26}
    {z=26, y=25, x=24, w=23, v=22, u=21, t=20, s=19, r=18, q=17, p=16, o=15, n=14, m=13, l=12, k=11, j=10, i=9, h=8, g=7, f=6, e=5, d=4, c=3, b=2, a=1}