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]