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;iarrayF
是一个字符串数组,因此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