【发布时间】:2011-10-07 11:58:13
【问题描述】:
我需要一个二维矩阵列表,例如ArrayList,我想知道在这种情况下什么是最可取的。它的大小只需为 4x4。
我应该使用类似的东西
ArrayList[][] foo = new ArrayList[4][4];
或
ArrayList<SomeClass>[][] foo = new ArrayList[4][4];
并在 for 循环中使用适当的类型初始化每个元素或
ArrayList<ArrayList<ArrayList<SomeClass>>> foo = ArrayList<ArrayList<ArrayList<SomeClass>>>();
第一种方法会生成警告,就像它应该参数化一样,如果我添加使用第二种方法,我会收到未经检查的转换警告。但是,如果我遍历元素并初始化它们,即使我仍然收到警告也不应该有任何问题?最后一种方法不会产生任何警告,可能工作正常,但感觉有点乱。
编辑:我的问题得到了一些不错的答案,即使它有点不清楚。但这基本上是如何制作列表表。创建一个自定义类来处理行/列使它变得容易得多。
【问题讨论】:
-
第二种方法应该是:
ArrayList<SomeClass>[][] foo = new ArrayList<SomeClass>[4][4];,但是有一个列表数组似乎有些尴尬。你真的需要那个二维数组吗?如果是这样,您能否提供更多信息说明原因? -
拥有 ArrayList
[][] foo = new ArrayList [4][4];会产生错误“无法创建 ArrayList 的通用数组,这就是我忽略它的原因 :) -
而我需要它的原因是我有一个包含“结果”的表格。根据操作的结果,我想将这些对象添加到二维数组中的这些列表之一。这会让事情变得更清楚吗? :)
标签: java multidimensional-array arraylist