我需要一个 Java 中的 5 维数据结构,所有单元格的类型为“double”。对于 3 个维度,我知道其大小,因此它适合数组类别。但对于 2 维我事先不知道大小;看起来像ArrayList。 我过去已经能够管理 3 个维度的组合:
ArrayList(Double)[][] prXifY = (ArrayList(Double)[][]) new ArrayList[m][n];
但是,尽管我花了很长时间(并通过网络搜索)来研究它,但我无法扩展它。我需要这样的东西:
ArrayList(ArrayList(Double))[][][] prXiXjY = (ArrayList(ArrayList(Double))[][][]) new ArrayList(ArrayList<Double))[m][m][n];
当我尝试上面的代码时,它说: “无法创建 ArrayList(ArrayList(Double)) 的通用数组”
我将不胜感激快速而完整的答案。
顺便说一下,这是我的第一篇文章。我尽力做好事前查找工作,把问题解释清楚。对这些问题的评论也受到赞赏。 :)
最佳答案
ArrayList
是一个对象,其实例化方式与数组不同。一般来说,要说你想要一个保存 double 的 ArrayList,你可以使用类似的东西:
ArrayList<Double> list = new ArrayList<Double>();
指定您有一个 ArrayList,其中包含包含 double 的 ArrayList...
ArrayList<ArrayList<Double>> list = new ArrayList<ArrayList<Double>>();
我希望你明白这是怎么回事。
这只是创建顶级列表 - 它本身不会创建任何单元格。为此,您需要额外的 new
语句。这很快就会变得困惑,您可能需要停下来考虑是否有比 5 维数组更好的方法来存储数据。
关于java - Java中如何将数组与数组列表结合起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28639281/