Map <TreeMap<String,String>, String> warn = new TreeMap<TreeMap<String,String>, String>();
TreeMap<String,String> am=new TreeMap<String,String>();
am.put("11", "a错误");
am.put("12", "b错误");
warn.put(am,"aa");
warn.put(am,"ab");如何遍历里面的键和值?

解决方案 »

  1.   

    抛砖引玉,剩下的自己研究啊for (Object obj : warn.keySet().toArray()) {
                System.out.println(obj);
            }另外warn.put(am,"ab"); 会把warn.put(am,"aa");覆盖掉的
     
      

  2.   

    运行了一下发现有异常
    map的key不能相同,因为放进去的时候要做比较,但TreeMap没有实现Comparable接口,LZ的代码有异常
    思路大概可以这样,我认为把map当作map的value会更好
    Set<TreeMap<String, String>> set = warn.keySet();
    for(Map<String, String> map : set) {
         System.out.println(map);
    }
      

  3.   

    调整语序:
    运行了一下发现有异常
    map的key不能相同,因为放进去的时候要做比较,但TreeMap没有实现Comparable接口,LZ的代码有异常
    思路大概可以这样
    Set <TreeMap <String, String>> set = warn.keySet();
    for(Map <String, String> map : set) {
    System.out.println(map);
    }但我认为把map当作map的value会更好
      

  4.   

    楼上说的 把map当作map的value会更好 通常是这样的
      

  5.   

    先取key值
    后用迭代器取value
      

  6.   

    Map <TreeMap <String,String>, String> warn = new TreeMap <TreeMap <String,String>, String>(); 
    TreeMap <String,String> am=new TreeMap <String,String>(); 
    am.put("11", "a错误"); 
    am.put("12", "b错误"); 
    warn.put(am,"aa"); 
    warn.put(am,"ab"); 
    Set keys = warn.keySet();
    Iterator iterator = keys.interator();
    while(iterator.hasNext())
    {
      TreeMap <String,String> key = (TreeMap <String,String>)iterator.next();
      String value=warn.get(key);
      System.out.println(value);
    }
      

  7.   


    public String cStateEstimateFun(String thermalplant,HashMap<String, ArrayList<HashMap<String, SourcedataBean>>> datamap) {
     List<StmCcFunBean> stmlistfuns =this.getAllStmTurbNHFuns(thermalplant);
     List<BoilerDataBean>  boilerlist  =this.getAllBoilerValues(thermalplant);
     Set<Entry<String, ArrayList<HashMap<String, SourcedataBean>>>> set=datamap.entrySet();
     Iterator<Entry<String, ArrayList<HashMap<String, SourcedataBean>>>> it=set.iterator();
     while(it.hasNext()){
     Entry<String, ArrayList<HashMap<String, SourcedataBean>>> entry=it.next();
     String rltime=entry.getKey();
     ArrayList<HashMap<String, SourcedataBean>> list=entry.getValue();
     for(int i=0;i<list.size();i++){
     HashMap<String, SourcedataBean> mapp=list.get(i);
     Set<Entry<String, SourcedataBean>> sett=mapp.entrySet();
     Iterator<Entry<String, SourcedataBean>> itt=sett.iterator();
     while(itt.hasNext()){
     Entry<String, SourcedataBean> entry1=itt.next();
     String psrname=entry1.getKey();
     SourcedataBean sdb=entry1.getValue();
     for(BoilerDataBean bdb : boilerlist){
     if(bdb.getPk_psr().equals(sdb.getBpk_psr())){
     
     }
     }
     }
     }
     }
    return null;
    }

    }
    自己刚写的 你看看吧