有没有办法在具有相同键的hashmap中获得有关多少值的整数?

时间:2017-01-02 14:32:39

标签: java hashmap

对于学校我正在构建一个多人游戏。在这个游戏中,我有一个大厅里的球员名单。此列表包含播放器的ID和播放器的spritename。这是我的价值观。作为关键,我会把大厅的钥匙。我正在和Hashmap一起工作。

当我想连接到大厅时,我必须知道播放器是否已经在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;
}

1 个答案:

答案 0 :(得分:0)

如果你有更多的抽象,这将更容易解决和推理。如果您创建了一个public static void main(String[] args) { try { String element = null; int numberOfInput = 0, numberOfStates = 0; ArrayList<Integer> inputs = new ArrayList<Integer>(); ArrayList<Integer> states = new ArrayList<Integer>(); //for creating excel sheet XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet(element); int rowCount = 0; for (int i=0;i<states.size();i++) { Row row = sheet.createRow(++rowCount); //int columnCount = 0; row.createCell(i).setCellValue(states.get(i)); } FileOutputStream outputStream = new FileOutputStream(element+".xlsx"); workbook.write(outputStream); } catch (Exception e) { System.out.println(e.getMessage()); } } ,它将大厅ID映射到大厅,以及一个聚合id和精灵名称的Map<Integer, Lobby>类。这很简单:

Player