Java 表番石榴和HashMap

Java 表番石榴和HashMap,java,hashmap,guava,Java,Hashmap,Guava,我有Table和HashMap 表employeeYearsOfService AT&T={Bill Smith=2.0, Stacy Lerner=1.4}, fatima={Bill Smith=1.0, Stacy Lerner=3.0} HashMaphm1 AT&T=0.962, fatima=0.888 我想计算并将结果存储在新的HashMaphm4 AT&T=0.2.812 fatima=4.0108 结石是 生成我的新HashMaphm4 AT

我有
Table
HashMap
employeeYearsOfService

 AT&T={Bill Smith=2.0, Stacy Lerner=1.4},
 fatima={Bill Smith=1.0, Stacy Lerner=3.0}
HashMap
hm1

AT&T=0.962, 
fatima=0.888
我想计算并将结果存储在新的HashMap
hm4

AT&T=0.2.812
fatima=4.0108
结石是 生成我的新HashMap
hm4

AT&T=0.2.812
fatima=4.0108
我的代码 我对HashMap和表使用循环,但结果是错误的

     Double res = 0.0;
       for (Double mapValue : hm1.values()) {
            for (String ke : employeeYearsOfService.columnKeySet()) {

              for (Entry<String, Double> employeek : 
              employeeYearsOfService.column(ke).entrySet()) {


                res+ = employeek.getValue() * mapValue.doubleValue();

           }

            hm4.put(ke, res);
        }
    }
Double res=0.0;
for(双映射值:hm1.values()){
对于(字符串ke:employeeYearsOfService.columnKeySet()){
对于(入职员工):
employeeyearsoffice.column(ke.entrySet()){
res+=employeek.getValue()*mapValue.doubleValue();
}
hm4.put(ke,res);
}
}

你能帮我找到我的错误吗?

“结果是错误的”-以什么方式?只是猜测:
hm4.put(ke,res)-在这里,您正在替换任何可能的以前的值,同时可能要添加它,即查找任何现有值,将其添加到
res
,然后将结果放入地图中。Thomas it calculat
for column BIll Smith |(2.0*0.962+1.0*0.962+2.0*0.888+1.0*0.888)
而不是我想要的你更新的代码,这并不奇怪。查看
res
-您正在为所有
ke
值计算一个值。相反,当您在新的
ke
上操作时,您需要为每个
ke
使用一个值,或者重置
res
——但是在这种情况下,您可能必须首先重新构造代码以循环列键。顺便说一句,通过使用调试器单步执行代码并检查值,这个问题应该很容易解决。这样你就可以很快发现哪里出了问题。