如何将字符串Matrix存储在数组中?

时间:2012-08-18 08:57:55

标签: java arrays matrix

我必须在String array内存储length 矩阵(3x20)incompatible types可能会有所不同。 我正在尝试以下代码,但我收到int x=0; String[] arrayF=new String[10]; arrayF[x]= new String[3][20]; 错误。

我该如何解决此错误?

我的代码是:

{{1}}

4 个答案:

答案 0 :(得分:1)

您不能以这种方式分配数组。您最终应该将第一个2数组的每个元素分配给1-d数组。

类似的东西:

String[][] array2D =new String[M][N];
String[] array1D = new String[M * N];

for (int i = 0 ; i < M ; i++)
{
    for (int j = 0 ; i < N ; i++)
    {
         array1D[(j * N) + i] = array2D[i][j];
    }

}

答案 1 :(得分:0)

arrayF是一个字符串数组,因此arrayF中的每个元素都必须是一个字符串(根据数组的定义)。
你要做的是在new String[3][20]的每个元素中放置一个数组(arrayF)而不是字符串,这显然与它的定义相矛盾(因此incompatible types错误)。
您想要的一个解决方案可能是使用三维字符串数组:

String[][][] arr = new String[10][3][20];

答案 2 :(得分:0)

arrayF是具有String类型的一维数组。 您不能将二维数组添加到arrayF。对于动态数组大小,您应该使用ArrayList。

List<String[][]> main = new ArrayList<String[][]>();

String[][] child1 = new String[3][20];
String[][] child2 = new String[3][20];
main.add(child1);
main.add(child2);

参考 Variable length (Dynamic) Arrays in Java

答案 3 :(得分:0)

使用类似的东西:

String [][] strArr = new String[3][20];
ArrayList<String[][]> tm = new ArrayList<String[][]>();
tm.add(strArr);