本帖最后由 meifage 于 2011-11-17 21:55:53 编辑

解决方案 »

  1.   

    楼主要搞清楚一个问题
    <("key1", "value2"),"a">, 
    这东西可不是HashMap<<HashMap<key,value>,value2> 哦
    应该是HashMap<<Entry<key,value>,value2>才对
    HashMap<key,value>可能有很多这样的键值对的,要按哪个排序呢?
      

  2.   

    你是要外面的那hashMap按照里面那个的value值来排序吗、、那也不用这么累人吧,最近谢个类,有一个key和value的属性,然后重写hashMap的排序方法就可以了啊,不用这么折磨人吧
      

  3.   

    只需要考虑里map的value值吗
    外map的key value不需要考虑吗 如果是这样的话用compare可以
      

  4.   

    HashMap<<HashMap<key,value>,value2>  其中 <key,value> 可以是一个对象吗?
      

  5.   

    弱弱的问一句,hashmap可以排序?
      

  6.   


    package com.test;import java.util.Comparator;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.TreeMap;public class TreeMapSort {

    public static void main(String[] args){
    TreeMap<Entry<String,String>,String> tree = 
    new TreeMap<Entry<String,String>,String>(new Comparator<Entry<String,String>>(){

    /**
     * 实现的compare方法,比较利用了String的compareTo,
     * 如果V之间比较返回0,则比较K的值,如果两个都相等的时候,
     * 在插入的时候视为重复的key值,将只会插入一个
     */
    @Override
    public int compare(Entry<String, String> o1,
    Entry<String, String> o2) {
    int result = o1.getValue().compareTo(o2.getValue());
    if(result != 0){
    return result;
    }else {
    return o1.getKey().compareTo(o2.getValue());
    }
    }

    }){
    /**
     * 
     */
    private static final long serialVersionUID = 1L; /**
     * 重写的toString方法,方便查看结果!
     */
    @Override
    public String toString(){
    return super.toString().replaceAll("[{}]", "")
    .replaceAll(",", "\n").replaceAll("=", "\t");
    }
    };

    //插入测试数据!-------------------------------------------------------
    Map<String,String> map = new HashMap<String,String>();
    for(int i=1;i<=10;i++){
    map.put("key"+i, "value"+ i%3);
    }

    int count=1;
    for(Entry<String,String> e : map.entrySet()){
    tree.put(e, "a"+count);
    count++;
    }
    //测试数据插入完成-----------------------------------------------------

    System.out.println(tree);
    }
    }
    前两天写的,根据你的问题,插入了一点测试数据,希望对你有帮助!
      

  7.   

    LinkedHashMap 没用过,有时间试验一下
      

  8.   

    HashMap<LinkedHashMap<String,String>,String>