如何在java中声明泛型类型的多维数组

时间:2010-12-21 05:36:11

标签: java

我想在行中存储一个包含100个int元素的数组,即1行100个int数据类型。每个元素都包含一个包含100个对象的数组。如何在java或android中执行此操作。

4 个答案:

答案 0 :(得分:6)

使用集合,“列表列表”:

List<List<YourType>> matrix2D = new ArrayList<List<YourType>>();

此结构可以轻松存储包含200行和100列的表,其中每个元素的类型为YourType

否则 - 如果您的尺寸已修复并且您只想存储YourType值,那么就不需要使用泛型:

int rows = 200;
int columns = 200;
YourType[][] matrix2D = new YourType[rows][columns];

答案 1 :(得分:0)

以下是初始化和填充二维Object数组的方法:

    Object value = 42;
    int rows = 100;
    int columns = 100;
    Object[][] myData = new Object[rows][columns];
    for (int r = 0; r < rows; r++) {
        for (int c = 0; c < columns; c++) {
            myData[r][c] = value;
        }
    }

注意,当原始int值42存储在Object [] []中时,它将被自动装箱。如果你不想这样,你可以使用int [] []代替。

答案 2 :(得分:0)

如果你的类型是int,那么 比使用Integer类型更紧凑。 (最多小6倍) 要创建固定大小的数组,您可以

int[][] matrix = new int[200][100];
// set all values to 42.
for(int[] row : matrix) Arrays.fill(row, 42);

答案 3 :(得分:-1)

我认为你需要这个。

200x100矩阵(数组)中的100 T(您的对象)对象

T[][][] t = new T[200][100][100] ; 

t[0][0][1] = new T();
t[0][0][2] = new T();
...
t[0][0][99] = new T();