java hashmap 获取第一个元素_Java HashMap只返回列表的最后一个元素

我正在开发2D游戏,我正在使用LWJGL和Slick-Util库来提供帮助。没有什么太复杂的,我之前编写了更难的东西。但是,我遇到了HashMap/Map返回值的一个非常奇怪的问题。这是我关于HashMap的代码:Java HashMap只返回列表的最后一个元素

public Map textures;

public void loadTextures()

{

textures = new HashMap();

textures.put("char_up", main.loadTextureFrom("character/character_up.png"));

textures.put("char_down", main.loadTextureFrom("character/character_down.png"));

textures.put("char_right", main.loadTextureFrom("character/character_right.png"));

textures.put("char_left", main.loadTextureFrom("character/character_left.png"));

}

但是,只要我使用textures.get(frameHere),它总是返回我放在了HashMap中的最后一个项目,因此,如果我的最后一个项目是“char_right”,它将始终返回char_right纹理,即使我调用类似textures.get(“char_up”)的东西。每次角色改变方向时,我都会尝试加载纹理的另一个实例来设置角色位置,并且它可以很好地工作。意思是,这个问题不是纹理加载器或我将纹理作为我的HashMap中的值的方式。

这非常令人沮丧,而且我对于我可能会在这里搞的一个巨大的损失。也许有一些令人难以置信的简单,我错过了,因为我以前在Java中做过这个没有问题,但即使比较一切看起来100%很好。任何帮助是极大的赞赏。谢谢。

编辑:

这里是我的loadTextureFrom()方法:

public Texture loadTextureFrom(String path)

{

try

{

return TextureLoader.getTexture("PNG", new FileInputStream(new File("res/textures/" + path)));

}

catch (FileNotFoundException e)

{

e.printStackTrace();

}

catch (IOException e)

{

e.printStackTrace();

}

return null;

}

2013-05-06

Knokk

+0

main.loadTextureFrom()做了什么?你可以发布代码? –

2013-05-06 09:21:09

+0

http://stackoverflow.com/questions/1516549/bad-idea-to-use-string-key-in-hashmap –

2013-05-06 09:21:23

+0

难道是loadTextureFrom是罪魁祸首? –

2013-05-06 09:21:24

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值