2016-12-07 66 views
-3

此代码的结果它给了我“0”:如何总结Map的元素?

Map<Integer, Long> bwvm=BwProvisionerSimple.getBwConsumed(); 

     Map<Integer, Long> map = new HashMap<Integer, Long>(); 

     long sum = 0; 
     for (Long val : map.values()){ 
      sum += val; 
     } 


     long bwhost=BwProvisioner.getBw(); 
     Log.print("getBw"+bwhost+"\n"); 

     if (sum > bwhost){ 

     bwhost=sum; 

     } 
     Log.printLine("\n new Bw host="+bwhost); 
+4

'map'是空的。零值的总和为零。你的意思是使用'bwvm.values()'而不是? –

+2

因为你创建了一张地图并且没有数据填充,所以你的总和保持为0 – Aelop

+1

我建议你逐步调试调试器中的代码,以更好地理解你的程序在做什么。 –

回答

0

问题是与您的地图:你刚才初始化他们,而不是插入值。

Map<Integer, Long> bwvm=BwProvisionerSimple.getBwConsumed(); 
Map<Integer, Long> map = new HashMap<Integer, Long>();