【发布时间】:2011-12-23 13:12:12
【问题描述】:
我想在 Java 中以合适的数据结构表示类似矩阵的数据。该矩阵的维度取决于用户输入。一种方法可能是使用“魔术”最大常数,并使用简单的多维数组。但是对数据的操作在很大程度上取决于维度,我想避免使用固定数组,因为我总是需要跟踪使用过的维度和最大维度。当然,更动态的方法是定义类似
private ArrayList<ArrayList<ArrayList<Point>>> arr3d = new ArrayList<ArrayList<ArrayList<Element>>>();
我认为这很难接受。最好定义一个自定义数据结构,即一维 ArrayList(或 Vector),然后以某种方式包装它,即将指定为 [i,j,k] 的访问映射到该单个列表的某个元素。是否可以覆盖运算符 []?如何有效地做到这一点?有没有我可以依赖的现有库或代码?
PS:我认为这可能是一个常见问题,但尽管尽了最大努力,我还没有找到现有问题。如果我错过了一些答案,请提前道歉。
【问题讨论】:
-
我还是不明白为什么不用数组...
-
@m0skit0 因为您必须静态声明它们的维数(即
double[][]vsdouble[][][]),并且操作员说这将在运行时确定。 (我猜)
标签: java arraylist multidimensional-array