2016-12-07 107 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>();