如何在多维数组中获取对象的索引?

时间:2017-11-12 10:33:42

标签: java multidimensional-array indices

假设我有一个多维对象数组

Object[][][] obj=new Object[10][10][10];

充满了任何形式的物品。有没有方法

public ArrayList(Integer) getIndices(Object o)

将对象作为输入并返回对象的索引? 我不关心我的多维数组的实际类:你可以用你选择的另一个类替换Object。我甚至不关心输出的类型:它可以是array int,或ArrayList(Integer),或任何你想要的。最后,当输入对象不在3D矩阵中时,我不关心此方法是否抛出异常。 我只是想了解哪些方法或多或少地做了我想要的方法。

有这样的方法吗?如果没有,我该如何定义它?我能想到的唯一方法是迭代3D矩阵的条目并使用.equals手动检查。这是最快的方式(即使是大型矩阵)?

提前谢谢

P.S。我检查了this之类的旧问题,但没有帮助。

1 个答案:

答案 0 :(得分:-1)

您可以使用此方法执行此操作..

  private static void find_indices(int[][][] arr,int row, int col, int height, int value) {
    ArrayList<String> list = new ArrayList<>();
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            for (int k = 0; k < height; k++) {
                if (arr[i][j][k] == value) {
                    list.add(String.valueOf(i));
                    list.add(String.valueOf(j));
                    list.add(String.valueOf(k));
                    list.add(String.valueOf("\n"));
                }
            }
        }
    }
    for (int i = 0; i < list.size(); i++) {
        System.out.print(list.get(i));
    }
}

使用find_indices(arr, value); 调用它 这是我所有标准应用程序中的工作代码。您可以将上述方法放在任何util类中,并通过发送数组和值作为参数来使用它。我在这里使用了列表,这样如果在不同的索引处找到多个对象,它将给出所有索引。 保持编码:)