我必须在其中存储一个String
矩阵(3x20),array
其length
可能会有所不同。我正在尝试以下代码,但出现incompatible types
错误。
我该如何解决这个错误?
我的代码是:
int x=0;
String[] arrayF=new String[10];
arrayF[x]= new String[3][20];
您不能以这种方式分配数组。您最终应该将第一个 2 数组的每个元素分配给 1 维数组。
就像是:
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];
}
}
arrayF
是一个字符串数组,因此其中的每个元素都arrayF
必须是一个字符串(根据数组的定义)。
您要做的是new String[3][20]
在 的每个元素中放置一个数组()而不是字符串,arrayF
这显然与其定义相矛盾(因此出现incompatible types
错误)。
您想要的一种解决方案可能是使用 3-d 字符串数组:
String[][][] arr = new String[10][3][20];
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);
使用这样的东西:
String [][] strArr = new String[3][20];
ArrayList<String[][]> tm = new ArrayList<String[][]>();
tm.add(strArr);