我有ArrayList<Integer> L1
和HashMap<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);
}
}
答案 0 :(得分:0)
即使我发现您的问题不清楚,我认为您想要将密钥的值(列表)与L1
列表进行比较,并计算它们为同一索引设置值1的次数。
替换:
if (mapValue.equals(L1.get(k++))) {
}
与
if (mapValue == 1 && mapValue.equals(L1.get(k++))) {
}