簡體   English   中英

在For Each風格中迭代HashMap

[英]Iterating through a HashMap in a For Each style

我想遍歷'character'HashMap並使用類似於每個循環的東西來獲取所有'Stat'對象。 例如,我想創建一個名為'showStats'的函數。 為此,我希望能夠輸出“字符”HashMap中包含的所有“stat”對象。 有誰知道如何做到這一點?

HashMap<String, GameObject> character = new HashMap<String, GameObject>;
character.put("Health", new Stat("Health",10));
character.put("Accuracy", new Stat("Accuracy",10));
character.put("Strength", new Stat("Strength",10));
character.put("Coins",new Item("Coins","Your Money"));
character.put("Head",new BodyPart("Head"));

使用values集合

for(GameObject gameObject : character.values()) { 
    if(gameObject instanceof Stat) { }
}

您可以使用Map接口中的values()方法僅迭代值,或者也可以使用entrySet()方法迭代每個Map條目:

for (Map.Entry<String, GameObject> entry : character.entrySet()) {
    String key = entry.getKey();
    GameObject gameObject = entry.getValue();
    // do something with key or gameObject here...
}

有關Map接口的更多信息,請訪問: http//docs.oracle.com/javase/7/docs/api/java/util/Map.html

希望有所幫助。

如果您需要訪問角色名稱(或任何您的密鑰),您可以這樣做:

for (String s : characters.keySet()) { 
    GameObject go = characters.get(s);
    if (go instanceof Stat) { 
        System.out.println("Character name: " + s);
        System.out.println("Stats: " + go)
    }
}    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM