Java 如何计算HashMap中的键值

Java 如何计算HashMap中的键值,java,Java,我写这篇文章基本上是为了一个游戏,我被卡住了 我们基本上有两支队伍 public enum TeamType { TEAM_ONE, TEAM_TWO; } private Optional<TeamType> team; 这是不可能的 从Java文档中可以看出,不能与每个键的多个值一起使用。您应该仔细查看当前代码正在做什么。SoTiRiOS提出了一个多哈希图,它可以为有类似问题的人工作,但是因为你只有两个团队,你可能想考虑另一个选项。 如果使用MultiHashMa

我写这篇文章基本上是为了一个游戏,我被卡住了

我们基本上有两支队伍

public enum TeamType {
   TEAM_ONE,
   TEAM_TWO;
}

private Optional<TeamType> team;

这是不可能的

从Java文档中可以看出,不能与每个键的多个值一起使用。您应该仔细查看当前代码正在做什么。SoTiRiOS提出了一个多哈希图,它可以为有类似问题的人工作,但是因为你只有两个团队,你可能想考虑另一个选项。 如果使用MultiHashMap,
teamPlayers.get(TeamType.ZAMORAK.size()

将返回扎莫拉克队大小的球员集合

如果是玩家列表:

private Map<TeamType, List<Player>> teamPlayers = new HashMap<>();
当然,您需要初始化一个空的玩家列表:

teamPlayers.put(TeamType.TEAM_ONE, new ArrayList<Player>());
teamPlayers.put(TeamType.TEAM_TWO, new ArrayList<Player>());

Map
不适用于此。
MultiMap
为。每个键的值数为一,值数等于键数,由
Map.size()
给出。你的问题没有道理。EJP再看一遍这个问题,它完全有道理。我想返回一组球员的数值。而不是整个地图。@weston回答了我的问题,与问题没有直接关系,但如果
TeamType
是枚举,则应使用
EnumMap
。然而,这在一开始似乎是个坏主意。在问题得到回答后,不要(完全)改变你的问题。
private Map<TeamType, List<Player>> teamPlayers = new HashMap<>();
teamPlayers.get(TeamType.TEAM_ONE).size();
teamPlayers.put(TeamType.TEAM_ONE, new ArrayList<Player>());
teamPlayers.put(TeamType.TEAM_TWO, new ArrayList<Player>());
teamPlayers.get(TeamType.TEAM_ONE).add(new Player());