二维列表的列表

Mat*_*ias 2 java arraylist multidimensional-array

我需要列表的二维矩阵,例如ArrayList,我想知道在这种情况下最优选的是什么.它只需要4x4的大小.

我应该使用类似的东西吗?

    ArrayList[][] foo = new ArrayList[4][4];
Run Code Online (Sandbox Code Playgroud)

要么

    ArrayList<SomeClass>[][] foo = new ArrayList[4][4];
Run Code Online (Sandbox Code Playgroud)

并在for循环中初始化具有适当类型的每个元素

    ArrayList<ArrayList<ArrayList<SomeClass>>> foo = ArrayList<ArrayList<ArrayList<SomeClass>>>();
Run Code Online (Sandbox Code Playgroud)

第一种方法生成警告,例如它应该是参数化的,如果我添加使用第二种,我得到未经检查的转换警告.但是,如果我循环遍历元素并初始化它们,即使我仍然收到警告,也应该没有任何问题?最后一种方法不产生任何警告,可能工作正常,但感觉有点混乱.

编辑:我的问题得到了一些很好的答案,即使它有点不清楚.但它基本上是如何制作一个列表.创建一个自定义类来处理行/列使它变得更容易.

Ale*_*exR 5

修复第一种方法如下:

List [] [] foo = new ArrayList [4] [4];

第二种方法不是你需要的.您正在尝试创建4维数组而不是2维数组4*4元素.

另外,我想给你一个提示:永远不要在任务的左边使用具体的类,即ArrayList list = ....使用List list = ...

并避免使用过于复杂的数据结构.列表的二维数组太复杂了.创建封装一些功能的自定义类,然后创建类的对象的集合/数组(更好的一维).