我需要计算两个Hashmap中的相等值的数量<integer,string =“”>

时间:2016-11-14 13:31:07

标签: java hashmap

我需要将相同值的数量计算到两个HashMap中。使用我的代码我只得到这样的行:161 161:7252

    private static void setGraphEdges(PrintWriter wr, String idP1, String idP2, HashMap<Integer, String> vot1, HashMap<Integer, String> vot2){
    int equalsCounter = 0;
    Set<Integer> listaIdVotazioni = vot1.keySet();
    listaIdVotazioni.retainAll(vot2.keySet());
    String votoparl1;
    String votoparl2;
    for(Integer id : listaIdVotazioni){
        votoparl1 = vot1.get(id);
        votoparl2 = vot2.get(id);
        if(votoparl1.equals(votoparl2)){
            equalsCounter++;
        }
    }
    wr.write(idP2+" "+idP2+": "+equalsCounter+System.getProperty("line.separator"));
}

编辑:使用:

        Set<Integer> listaIdVotazioni = vot1.keySet();
        listaIdVotazioni.retainAll(vot2.keySet());

我没有得到两组钥匙之间的交叉点?

1 个答案:

答案 0 :(得分:0)

在每个HashMap上使用System.identityHashCode(x)对键进行排序。然后比较类似于:

other answer