2016-05-24 44 views
-3

我正在尝试在我的Java游戏中使用HashMapEntity存储在Stage类中,并全部更新它们。我正在这样做,所以我希望能够确切地确定哪个对象是一个键的位置。我希望它也能找到密钥本身,尽管这里是我的代码。使用HashMap在Java中存储和检索对象

public class Stage { 

    private HashMap<String, Entity> entityHash = new HashMap<String, Entity>(); 

    public Stage(){ 

    } 

    public void addToStage(Entity e){ 
     entityHash.put(e.getKey(), e); 

    } 

    public void test(){ 
     for(int i = 0; i < entityHash.size(); i++){ 
      //Line to be discussed about 
      System.out.println(entityHash.get("player").getPosition()); 
     } 
    } 
} 

在上面讨论的代码行中,是否有代码自己找到密钥的方法。每个实体都有一个名为getKey()的方法,我想知道我能否以某种方式得到它。

注:我可以很容易地通过,具有通过这种方式,钥匙和循环字符串ArrayList做到这一点,但我希望有人这样做,也许我缺少的一个更简单的方法。谢谢!

+0

如果你使用信息getKey()把,你可以使用信息getKey()来获取 – Leo

回答

0

地图有一个方法返回使用它的一组密钥keySet()

可以遍历它是这样的:

public void test(){ 
    for(String key : entityHash.keySet()){ 
     System.out.println(entityHash.get(key).getPosition()); 
    } 
} 
+0

这有助于一吨太感谢你了,我会接受的答案尽快我可以!谢谢! – Luke

+1

最好使用'entrySet()',它允许直接在条目上循环,而不是循环遍历键和检索值。更好的是:使用'values()'直接循环值,因为OP对密钥不感兴趣。 – Tunaki