我正在寻找一种数据结构来存储二维整数数组。是List数据结构正确吗,还是应该使用其他数据结构?
有人可以给我一个简短的例子,说明如何创建这样的数据结构以及如何添加一个2D数组吗?
编辑:我想要一种数据结构来存储int[11][7]数组。例如,十个int[11][7]数组。
我正在寻找一种数据结构来存储二维整数数组。是List数据结构正确吗,还是应该使用其他数据结构?
有人可以给我一个简短的例子,说明如何创建这样的数据结构以及如何添加一个2D数组吗?
编辑:我想要一种数据结构来存储int[11][7]数组。例如,十个int[11][7]数组。
int[][]
数组,我建议您将int[][]
数组存储在表示数据内容的Object
中,然后将这些Objects
存储在ArrayList
中。Object
包装器,用于封装您的int[][]
数组。public class 2DArray {
int[][] array;
public 2DArray(int[][] initialArray){
array = initialArray;
}
}
以下是如何使用它们并将它们存储在ArrayList
中的方法:
// create the list
ArrayList<2DArray> myList = new ArrayList<2DArray>();
// add the 2D arrays to the list
myList.add(new 2DArray(myArray1));
myList.add(new 2DArray(myArray2));
myList.add(new 2DArray(myArray3));
int[][]
数组一定对你有某种含义。通过将其存储在一个 Object
包装类中,你可以赋予它意义。例如,如果这些值是坐标,你可以把你的类命名为 Coordinates
而不是 2DArray
。因此,你创建一个 List
的 Coordinates
,它比 int[][][]
更具有意义。ArrayLists
很简单 - 只需查看 Java 文档以获取方法列表即可。所有数组命令都有相应的等效命令 - 例如,不是调用 array[0]
,而是调用 list.get(0);
。 - wattostudios所以您想要存储一组2D数组:如果该集合是固定大小,请添加另一个维度:
int[][][] arrColl
如果集合大小是可变的,请使用您喜欢的Collection<int[][]>
实现(ArrayList、LinkedList等):
Collection<int[][]> arrColl
int[][]
,否则使用 List<List<Integer>>
。根据您的编辑:
List<Integer[][]>
是您需要的 - 这将允许您添加任意数量的2D Integer
数组。请注意,这将涉及装箱和拆箱 - 如果可能的话应该避免。
如果足够(如果您事先知道需要多少个2D int数组),甚至可以使用int [] [] []
- 一个3D int数组 - 这不涉及装箱/拆箱。