关于Java:如何返回哈希图的值

How to return the value of a HashMap

本问题已经有最佳答案,请猛点这里访问。

假设我们有地图

1
private Map<TeamType, Player> teamPlayers = new HashMap<>();

我们初始化它们

1
2
teamPlayers.put(TeamType.ONE, new ArrayList<Player>());
teamPlayers.put(TeamType.TWO, new ArrayList<Player>());

我们在里面储存了一些价值观

1
2
teamPlayers.get(TeamType.ONE).add(player);
teamPlayers.get(TeamType.TWO).add(player);

有没有办法把两队队员的数量都还回来

1
int totalPlayers = teamPlayers.get(TeamType.ONE).size() + teamPlayers.get(TeamType.Two).size();

因为如果有超过4支球队,这会变得非常混乱。请记住,teamtype是一个枚举。


1
 int total =teamPlayers.get(TeamType.TEAM_ONE).size() + teamPlayers.get(TeamType.TEAM_TWO).size()

应该工作。您可以发布当前代码而不是引用以前的日志吗?很难知道你做了什么改变,你从上一篇文章中得到了什么建议。

更新了对TeamType枚举中每个条目进行迭代的答案:

1
2
3
4
int total = 0;
for(TeamType type : TeamType.values()){
    total += teamPlayers.get(type).size();
}

因此for-each循环将遍历枚举中的每个条目,total将为每个团队累积玩家数。