假设我有一个多维对象数组
对象[][][] obj=new 对象[10][10][10];
充满了任何种类的物体。有没有办法
public ArrayList(Integer) getIndices(Object o)
将一个对象作为输入并返回该对象的索引?
我不关心多维数组的实际类:您可以将 Object
替换为您选择的另一个类。我什至不关心输出的类型:它可以是 int
的 array
,或者 ArrayList(Integer)
,或者任何你想要的。最后,当输入对象不在 3D 矩阵中时,我不关心此方法是否抛出异常。
我只是想了解有哪些方法可以或多或少地完成我想要的事情。
有这样的方法吗?如果不是,我该如何定义它?我能想到的唯一方法是迭代 3D 矩阵的条目并使用 .equals
手动检查。这是最快的方法(即使是大矩阵)吗?
提前谢谢
附注我检查了较旧的问题,例如 this但这没有帮助。
最佳答案
您可以使用此方法来执行此操作..
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 类中,并通过发送数组和值作为参数来使用它。我在这里使用了列表,这样如果在不同的索引处找到多个对象,它将给出所有索引。
继续编码:)
关于java - 如何获取多维数组中对象的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47247776/