0
对于学校我建立一个多人游戏。在这个游戏中,我有一个在大厅里的球员名单。该列表包含玩家的ID和玩家的名字。 Thoose是我的价值观。作为关键我会把大厅的关键。一起形成我正在使用的Hashmap。有没有办法得到一个整数howmany值有一个hashmap中有相同的密钥?
当我想连接到大厅,我必须知道如果播放器allready是在hashmap中,所以我需要一个foreach循环来检查。但我不知道该怎么做,或者即使这是可能的。
private HashMap<Integer, List<String>> playersInLobby;
public IRemotePublisherForListener connect(int playerID, String spriteName, int lobbyID)
{
boolean found = false;
for (int i = 0; playersInLobby.containsKey(lobbyID);)
{
if (playersInLobby.get(lobbyID).get(0) == playerID + "")
{
found = true;
}
}
if (!found)
{
playersInLobby.put(lobbyID, new ArrayList<>(Arrays.asList(playerID + "", spriteName)));
}
return publisher;
}
'值HashMap中具有相同key',只有1。你不能有一个HashMap重复键,即点;) – AxelH
你'put'逻辑是相当也很遥远 - 这样,每个大厅里最多只能有一名球员。什么是“发布者”和应该是什么样的for循环?你现在试图阻止球员两次进入大堂或同时进入两个大厅吗? – luk2302
您可以使用[Guava Multimap](https://github.com/google/guava/wiki/NewCollectionTypesExplained#Multimap) –