Java HashMap未按预期运行
我制作了一个3 x 3的矩阵。 单击其中一个框将元素添加到hashmap 例如,单击第一个框将“imageView1”作为键添加到hashmap中,将“true”作为值添加到hashmap中 有两个玩家,因此有两个hashmaps player1和player2Java HashMap未按预期运行,java,android,hashmap,Java,Android,Hashmap,我制作了一个3 x 3的矩阵。 单击其中一个框将元素添加到hashmap 例如,单击第一个框将“imageView1”作为键添加到hashmap中,将“true”作为值添加到hashmap中 有两个玩家,因此有两个hashmaps player1和player2 player1.put("imageView1","true"); 因此,当任何一个播放器单击框时,相应的框名称将添加到相应的hashmap中 然后检查玩家是否赢了 if(player1.containsKey("imageVie
player1.put("imageView1","true");
因此,当任何一个播放器单击框时,相应的框名称将添加到相应的hashmap中
然后检查玩家是否赢了
if(player1.containsKey("imageView1")
&&player1.containsKey("imageView2")
&&player1.containsKey("imageView3")){
return true;
}
但这不起作用。你能帮我吗?
注意:我没有把整个算法。。我刚刚检查了1个条件(即,如果检查了1 2 3,那么玩家1赢了,就像井字游戏一样)
这些是档案
MainActivity.java(原件)()
MainActivity.java(压缩)()
Content\u Main.xml()您的代码看起来不错,但我建议您检查一下
getResources().getResourceName(view.getId())
正在放置在地图中。具体而言,您应该确认:
getResources().getResourceName(view.getId()).equals("imageView1")
getResources().getResourceName(view.getId()).equals("imageView2")
getResources().getResourceName(view.getId()).equals("imageView3")
getResources().getResourceName(view.getId()).equals("imageView4")
...
getResources().getResourceName(view.getId()).equals("imageViewN")
至少一次为true。即,您需要确保输入的
字符串与调用.contains()
时完全相同,否则您将永远无法获得与.contains()匹配的字符串
请阅读此文。@PaulBoddington感谢您指出这一点。我制作了一个新项目并制作了一个压缩版本,删除了默认和未编辑的代码行(导入语句除外)。您好,我在一个在线java编译器中尝试了用“&&”进行提取,结果返回“true”当使用exach hashmap将imageView1转换为imageView 3时,我通过Log.i(“Value”、“”+getResources().getResourceName(view.getId());获取值,用于创建hashmap密钥对..然后执行它。它工作正常。。。