Для школы я создаю многопользовательскую игру. В этой игре у меня есть список игроков в холле. Этот список содержит идентификатор игрока и имя пользователя игрока. Thoose - мои ценности. В качестве ключа я поставлю ключ в лобби. вместе с формой 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'-логика вполне далеко также - таким образом, в каждом лобби может быть только не более одного игрока. И что такое 'издатель' и какой из циклов должен быть? Вы сейчас пытаетесь помешать игрокам находиться в фойе дважды или быть в двух лобби одновременно? – luk2302
Вы можете использовать [Guava Multimap] (https://github.com/google/guava/wiki/NewCollectionTypesExplained#Multimap) для ваших целей. –