创建方法来总结Java的HashMap中的所有值[重复]
Posted
技术标签:
【中文标题】创建方法来总结Java的HashMap中的所有值[重复]【英文标题】:Create Method to sum up all Values in a HashMap for Java [duplicate] 【发布时间】: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)。
【参考方案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 提供了函数式编程能力。 但范式与经典编程有点不同
【讨论】:
以上是关于创建方法来总结Java的HashMap中的所有值[重复]的主要内容,如果未能解决你的问题,请参考以下文章