Java 检查值是否在ArrayList中<;int[]>;
各位晚上好,这里的新手。我需要重写老师给我的代码段,以便为迷宫解算器创建动画,老师使用了Java 检查值是否在ArrayList中<;int[]>;,java,arraylist,int,Java,Arraylist,Int,各位晚上好,这里的新手。我需要重写老师给我的代码段,以便为迷宫解算器创建动画,老师使用了ArrayList nodes=new ArrayList()以存储行走路径(x/y坐标) 坐标通过nodes.add(newint[]{x,y})存储 现在,当解算器在死胡同后必须向后“行走”时,必须从ArrayList中删除节点,我想检查坐标是否为节点。在这种情况下,我想知道最后添加的节点是否是我要使用的坐标 当我打印System.out.println(nodes.get(nodes.size()-1)
ArrayList nodes=new ArrayList()代码>以存储行走路径(x/y坐标)
坐标通过nodes.add(newint[]{x,y})存储代码>
现在,当解算器在死胡同后必须向后“行走”时,必须从ArrayList中删除节点,我想检查坐标是否为节点。在这种情况下,我想知道最后添加的节点是否是我要使用的坐标
当我打印System.out.println(nodes.get(nodes.size()-1))
时,我会得到如下结果:[I@6cbb6079
如何比较nodes.get(nodes.size()-1)
和int x=5,y=7;
例如?比较节点的值(它是数组,所以使用[]
括号)和x
和y
值:
if (nodes.get(nodes.size()-1)[0] == x && nodes.get(nodes.size()-1)[1] == y)
System.out.println("equals");
如果您有Node
类,则可以为其实现equals()
方法,并以以下方式使用它:
if (nodes.get(nodes.size()-1).equals(new Node(x,y)))
System.out.println("equals");
这是因为您正在打印数组而打印出来的引用!请尝试使用索引打印出来
例如:System.out.println(nodes.get(nodes.size()-1)[0])
用于x,而System.out.println(nodes.get(nodes.size()-1)[1])
用于y。您得到的数组元素位于数组大小-1的位置。
只需要从数组索引中获取值,添加索引就可以得到结果
像-
可以使用int coXY[]=nodes.get(nodes.size()-1);if(coXY[0]==5&&coXY[1]==7){}
nodes.get(nodes.size()-1)[0]
nodes.get(nodes.size()-1)[1]