Java中Hashtable的值求和

问题描述

我正在尝试对Java词典中的所有值求和(帮助我的孩子做作业,我从不使用Java)。这是我尝试过的:

    Hashtable<Int,Int> jim_dict = new Hashtable<Int,Int>();
    Hashtable<Int,Int> pam_dict = new Hashtable<Int,Int>();

    int totalJimVotes() {
        int sum = 0;

        (int value: jim_dict.values()) {
            sum += value;
        }

        return sum;
    }

    int totalPamVotes() {
        int sum = 0;

        (int value : pam_dict.values()) {
            sum += value;
        }

        return sum;
    }

我在语法上犯了什么?我在SO上找到了另一个求和浮点值的答案,但是它的语法似乎不起作用。

解决方法

这是求和的例子。

使用jim_dict.values()作为总和。

使用jim_dict.keySet()作为密钥的总和。

        Hashtable<Integer,Integer> jim_dict = new Hashtable<Integer,Integer>();
        jim_dict.put(1,10);
        jim_dict.put(2,20);
        System.out.println("Values Sum:" + jim_dict.values().stream().mapToInt(Integer::intValue).sum());
        System.out.println("Keys Sum:" + jim_dict.keySet().stream().mapToInt(Integer::intValue).sum());