作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个映射,它表示映射到值的 string-int 矩阵:
static Map<Pair<String,Integer>, Integer> wordTopic = new HashMap<>();
我想获得具有特定字符串(该对的一部分)而不是整个对 Pair<String,Integer>
的值的总和又名一行的总和。
示例:矩阵
string/int 1 2
value1 13 26
value2 11 22
我想要字符串“value1”的行值的总和..输出应为=39
我发现了这个:Integer integerSum = wordTopic.values().stream().mapToInt(Integer::intValue).sum();
但这将使我得到整个键的值的总和,即整个矩阵,我只想要行的总和..有任何提示吗?
最佳答案
我认为是这样的:
输入:
a-1 = 100
a-2 = 200
b-4 = 400
b-8 = 800
输出:
a = 300
b = 1200
使用map.entries()可能有助于更轻松地处理行。
您似乎想首先按字符串进行分组,因此检查 Map.Entry.getKey().getValue0() 的 .group() lambda 会生成 <String, List<Map.Entry>>
的映射
对于其中的每一个,您都需要执行所需的 .map 和 .sum 等操作(留作家庭作业...)
您可能会说,带有另一个 HashMap 的旧 for 循环将更具可读性......
关于java - 如何在java中获取映射中对(键)值的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50077858/
我是一名优秀的程序员,十分优秀!