Java试图让所有缓存

时间:2011-05-22 17:49:52

标签: java caching

我在我的小游戏中缓存某些玩家,现在在我的跑步方法中,我想检查每个被缓存的人并给予他们奖励,getAllplayersOnline并检查他们是否在某个地图中,我只是缓存那些人进入那张地图。

public static HashMap<Integer,MapleCharacter> fishlist = 
               new HashMap<Integer,MapleCharacter>();

然后我把

fishlist.put(chr.getId(), chr);

现在在我的跑步方法中我试过

                 if(UseChairHandler.fishlist.containsKey(chr.getId())) {
//do stuff

但它不起作用......有什么想法吗?

2 个答案:

答案 0 :(得分:0)

entryset允许你遍历整个地图

for(Map.Entry<Integer,MapleCharacter> entry:fishlist.entrySet() ){
    //entry.value() is a MapleCharacter in the map
}

答案 1 :(得分:0)

添加更多调试输出。 System.err.println(fishlist)可以创造奇迹。 chr.getId()总是返回正确的ID吗? 此外,如果您的游戏是多线程的,如果您没有正确同步对地图的访问权限,则会遇到问题。