use*_*086 3 java arrays list find indexof
是否有可能在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}));
Run Code Online (Sandbox Code Playgroud)
该equals()原语的Java阵列的实现执行基准相等性检查.意思是,如果引用指向数组的同一实例,则它们仅被视为相等.
您可以编写自己的索引搜索方法,使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
669 次 |
| 最近记录: |