【问题标题】:Create Method to sum up all Values in a HashMap for Java [duplicate]创建方法来总结Java的HashMap中的所有值[重复]
【发布时间】:2020-04-01 14:58:26
【问题描述】:

我正在尝试将任何 Hashmap 的所有值相加。哈希映射将有两个整数。第一个作为键,第二个作为值。我在编译器中遇到错误,因为我不确定如何执行此操作。我想返回 hash 映射中所有值的总值。

我希望此方法适用于我放入此方法参数并返回的任何 hash 映射

我是一名 7 年级学生,目前正在尝试自学 Java。如果有人可以告诉我如何在 main 方法中使用传入的哈希映射来运行它,那将是超级的。

我收到了这些errors: 此行有多个标记 - 值无法解析为类型 - 类型不匹配:无法从元素类型整数转换为值 - 行断点:PopulationTotal [行:10] - getTotal(HashMap) - 语法错误,插入“标识符”完成 EnhancedForStatementHeaderInit

我正在尝试这个:

public int getTotal (HashMap<Integer, Integer> p) {
    for (value : p.values()) {
        int total += value;
    }
    return total
}

【问题讨论】:

  • 这能回答你的问题吗? How to sum values from Java Hashmap
  • 你需要在循环之前声明total,而不是在里面。
  • 只需在 for 循环之前声明 total
  • 旁注:尽可能使用接口而不是实现类作为方法参数(Map 而不是 HashMap)。

标签: java hashmap


【解决方案1】:

您必须声明 for-each 变量的类型。
此外,在循环外将总计初始化为 0。
试试这个:

public int getTotal (HashMap<Integer, Integer> p) {
int total = 0;
for (int value : p.values()) {
    total += value;
}
return total
}

【讨论】:

    【解决方案2】:

    或者这样更短:

    public int getTotal (HashMap<Integer, Integer> p) {
        return p.values().stream().mapToInt(Integer::intValue).sum();
    }
    

    感谢 Stream API,JAVA 8 提供了函数式编程能力。 但范式与经典编程有点不同

    【讨论】:

      猜你喜欢
      • 2017-02-12
      • 1970-01-01
      • 2019-04-11
      • 2021-01-21
      • 2014-02-22
      • 2015-11-12
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多