假设我有一个多维对象数组
Object[][][] obj=new Object[10][10][10];
充满了任何形式的物品。有没有方法
public ArrayList(Integer) getIndices(Object o)
将对象作为输入并返回对象的索引?
我不关心我的多维数组的实际类:你可以用你选择的另一个类替换Object
。我甚至不关心输出的类型:它可以是array
int
,或ArrayList(Integer)
,或任何你想要的。最后,当输入对象不在3D矩阵中时,我不关心此方法是否抛出异常。
我只是想了解哪些方法或多或少地做了我想要的方法。
有这样的方法吗?如果没有,我该如何定义它?我能想到的唯一方法是迭代3D矩阵的条目并使用.equals
手动检查。这是最快的方式(即使是大型矩阵)?
提前谢谢
P.S。我检查了this之类的旧问题,但没有帮助。
答案 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类中,并通过发送数组和值作为参数来使用它。我在这里使用了列表,这样如果在不同的索引处找到多个对象,它将给出所有索引。
保持编码:)