我在我的小游戏中缓存某些玩家,现在在我的跑步方法中,我想检查每个被缓存的人并给予他们奖励,getAllplayersOnline并检查他们是否在某个地图中,我只是缓存那些人进入那张地图。
public static HashMap<Integer,MapleCharacter> fishlist =
new HashMap<Integer,MapleCharacter>();
然后我把
fishlist.put(chr.getId(), chr);
现在在我的跑步方法中我试过
if(UseChairHandler.fishlist.containsKey(chr.getId())) {
//do stuff
但它不起作用......有什么想法吗?
答案 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吗?
此外,如果您的游戏是多线程的,如果您没有正确同步对地图的访问权限,则会遇到问题。