java - 在 ArrayList 中查找数组的索引

标签 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}));

最佳答案

原始 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/

相关文章:

java - 如何使用 SimpleXML 跨序列化保留结构?

javascript - 使用javascript压缩二维数组的重复

java - 您如何对 Java 8 流中的对象列表求和

python - 在元组列表中查找元组的索引

java - spring中如何初始化自定义注解

java - 在Java中使用Jsoup提取HTML表格(span)标签

python - Pandas 使用 numpy 数组填充值

java - 对 List<Map<String, String>> 进行排序

java - Android 版 java 中的 whois

Java多态处理: Incorrect output?