我想传入两个这种类型的参数:Map<String, HashMap<String,  Float>,下面的这段代码是有错误的,想要的功能就是取出集合中的值把它放入list集合中,求助正确的写法,急!好人一生平安
public ComputerDecision(Map<String, HashMap<String,  Float>> m1,Map<String,  HashMap<String,  Float>> m2){
        List<Float> vector1 = new ArrayList<Float>();
        List<Float> vector2 = new ArrayList<Float>(); 
       Set<String> set1 = m1.keySet();
     for(String str: set1){
     vector1.add(m1.get(str));
     }
     Set<String> set2 = m2.keySet();
     for(String str: set2)
     {
     vector2.add(m2.get(str));    }

解决方案 »

  1.   


    public void ComputerDecision(Map<String, HashMap<String, Float>> m1,
    Map<String, HashMap<String, Float>> m2) {
    List<Float> vector1 = new ArrayList<Float>();
    List<Float> vector2 = new ArrayList<Float>();
    Set<String> set1 = m1.keySet();
    for (String str : set1) {
    // m1.get(str) 得到的是一个HashMap<String, Float>
    HashMap<String, Float> tempMap = m1.get(str);
    Set<String> tempSet = tempMap.keySet();
    for (String key : tempSet) {
    vector1.add(tempMap.get(key)); //tempMap.get(key) 这才是Float的值
    }
    } Set<String> set2 = m2.keySet();
    for (String str : set2) {
    HashMap<String, Float> tempMap = m1.get(str);
    Set<String> tempSet = tempMap.keySet();
    for (String key : tempSet) {
    vector2.add(tempMap.get(key));
    }
    }
    }