HashMap和List中的类似元素

时间:2017-05-31 16:06:28

标签: java arraylist hashmap

我有ArrayList<Integer> L1HashMap<Integer, ArrayList<Integer>> L 其中包含布尔数[0.1]。我希望增加我的计数器values=1,但我的代码会增加0和1。

我的代码

 public static HashMap sim(HashMap<Integer, ArrayList<Integer>> 
 L,ArrayList<Integer> L1){
    System.out.println("HASHMAP SIMILIRATE RESULT:");
    HashMap<Integer, Integer> sim = new HashMap<Integer, Integer>();

    int count;
    int k = 0;


    for (Map.Entry<Integer, ArrayList<Integer>> e : L.entrySet()) {

        count = 0;
        //you can move this part to another method to avoid deep nested code
        for (Integer mapValue : e.getValue()) {

            if (mapValue.equals(L1.get(k++))) {

                count =count+1;

            }
            else{

            }
        }
        sim.put(e.getKey(), count);
        k=0;

    }
    System.out.println(sim);
    return(sim);
}
}

1 个答案:

答案 0 :(得分:0)

即使我发现您的问题不清楚,我认为您想要将密钥的值(列表)与L1列表进行比较,并计算它们为同一索引设置值1的次数。

替换:

if (mapValue.equals(L1.get(k++))) {
}

if (mapValue == 1 && mapValue.equals(L1.get(k++))) {
}