Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在数组中存储字符串矩阵?_Java_Arrays_Matrix - Fatal编程技术网

Java 如何在数组中存储字符串矩阵?

Java 如何在数组中存储字符串矩阵?,java,arrays,matrix,Java,Arrays,Matrix,我必须在数组中存储字符串矩阵(3x20),该数组的长度可能会有所不同。 我正在尝试以下代码,但得到了一个不兼容类型的错误 如何修复此错误 我的代码是: intx=0; String[]arrayF=新字符串[10]; arrayF[x]=新字符串[3][20]; 不能以这种方式分配数组。您最终应该将第一个二维数组的每个元素分配给一维数组 比如: String[][] array2D =new String[M][N]; String[] array1D = new String[M * N];

我必须在
数组中存储
字符串
矩阵(3x20),该数组的
长度可能会有所不同。
我正在尝试以下代码,但得到了一个
不兼容类型的错误

如何修复此错误

我的代码是:

intx=0;
String[]arrayF=新字符串[10];
arrayF[x]=新字符串[3][20];

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

比如:

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];
    }

}
String[][]array2D=新字符串[M][N];
字符串[]数组1d=新字符串[M*N];
for(int i=0;i
arrayF
是一个字符串数组,因此
arrayF
中的每个元素必须是一个字符串(根据数组的定义)。
您试图做的是在
arrayF
的每个元素中放置一个数组(
新字符串[3][20]
),而不是一个字符串,这显然与其定义相矛盾(因此
不兼容的类型
错误)。
一种解决方案可能是使用三维字符串数组:

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

arrayF是字符串类型的一维数组。 无法将二维数组添加到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);
List main=new ArrayList();
字符串[][]child1=新字符串[3][20];
字符串[][]child2=新字符串[3][20];
main.add(child1);
main.add(child2);

使用类似以下内容:

String [][] strArr = new String[3][20];
ArrayList<String[][]> tm = new ArrayList<String[][]>();
tm.add(strArr);
String[]strArr=新字符串[3][20];
ArrayList tm=新的ArrayList();
tm.add(strArr);

注意命名约定
2dArray
1dArray