[英]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.