如何对Map的元素求和?

时间:2016-12-07 13:53:47

标签: java arrays

这段代码给出了我的结果" 0":

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);

2 个答案:

答案 0 :(得分:0)

问题在于您的地图:您只是初始化它们而不是插入值。

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

答案 1 :(得分:0)

与其他人指出的一样,你的地图是空的。但是,当你了解它时,你可以查看java 8减少。它已经有一个内置的sum()方法

https://docs.oracle.com/javase/tutorial/collections/streams/reduction.html