我有一个散列图,其形式为 <gameID, Achievement>
其中Achievement 是一个用户定义的对象,它包含AchievementID、AchievementName 和AchievementPoints:
[1003901=(901, Shoot 'em up, 100), 1001902=(902, Tango down, 15)]
我想根据整个游戏的 AchievementPoints 添加值,因此在本例中,我将添加 100 和 15。我尝试使用 foreach 循环进行迭代,但是,我似乎无法找出如何专门访问 AchievementPoints 成员并使用该值。有没有办法只迭代 HashMap 并根据对象值的特定成员添加值?
编辑1:
抱歉,澄清一下,我的 gameID 实际上是一个组合,其中前四个数字是实际的 gameID,接下来的 3 个数字是成就 ID。这样做是为了保持 id 的唯一性。这就是为什么我要添加这两个
最佳答案
假设 Java 8,如果您只是想将 map 中的所有值相加,您可以执行以下操作:
achievementMap.values().stream().mapToInt(a -> a.getAchievmentPoints()).sum();
这将创建一个迭代映射中所有值的流,将 Achievement
实例转换为整数值,并选择对象的 achievementPoints
属性然后总结一下。
关于java - 使用用户定义的对象作为值从 HashMap 中添加特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35117791/