0

String 異なる場合があるマトリックス(3x20)を内部に格納する必要arraylengthあります。次のコードを試していますが、incompatible typesエラーが発生します。

このエラーを修正するにはどうすればよいですか?

私のコードは次のとおりです。

int x=0;    
String[] arrayF=new String[10];    
arrayF[x]= new String[3][20];
4

4 に答える 4

1

この方法で配列を割り当てることはできません。最終的には、最初の 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];
    }

}
于 2012-08-18T09:08:17.380 に答える
0

arrayFは、文字列型の1次元配列です。arrayFに2次元配列を追加することはできません。動的配列サイズの場合は、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);

Javaの可変長(動的)配列を参照してください

于 2012-08-18T09:19:39.463 に答える
0

次のようなものを使用します。

String [][] strArr = new String[3][20];
ArrayList<String[][]> tm = new ArrayList<String[][]>();
tm.add(strArr);
于 2012-08-18T09:19:58.980 に答える
0

arrayF文字列の配列であるarrayFため、(配列の定義により) の各要素は文字列でなければなりません。
あなたがやろうとしているのはnew String[3][20]、文字列の代わりに配列( )を の各要素に入れることですarrayF。これは明らかにその定義と矛盾します(したがってincompatible typesエラー)。
必要な解決策の 1 つは、文字列の 3 次元配列を使用することです。

String[][][] arr = new String[10][3][20];
于 2012-08-18T09:17:26.390 に答える