是否可以在 ArrayList 中找到数组的索引?
indexOf
方法似乎不起作用。例如,对于给定的大小为 2 的数组列表,此代码打印“-1”
List<Integer[]> nodes = new ArrayList<Integer[]>();
nodes.add(new Integer[] {1,1});
System.out.println(nodes.indexOf(new Integer[] {1, 1}));
最佳答案
原始 Java 数组的 equals()
实现执行引用相等性检查。意思是,只有当引用指向数组的相同实例时,它们才被认为是相等的。
您可以编写自己的使用 Arrays.equals()
静态方法的索引查找方法,如下所示:
List<Integer[]> nodes = new ArrayList<Integer[]>();
nodes.add(new Integer[] {1,1});
Integer[] lookingFor = new Integer[] {1,1};
int index = -1;
for (int i = 0; i < nodes.size(); i++) {
Integer[] array = nodes.get(i);
if (Arrays.equals(lookingFor, array)) {
index = i;
break;
}
}
System.out.println(index); // 0
关于java - 在 ArrayList 中查找数组的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32616814/