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は、文字列型の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の可変長(動的)配列を参照してください
次のようなものを使用します。
String [][] strArr = new String[3][20];
ArrayList<String[][]> tm = new ArrayList<String[][]>();
tm.add(strArr);
arrayF
は文字列の配列であるarrayF
ため、(配列の定義により) の各要素は文字列でなければなりません。
あなたがやろうとしているのはnew String[3][20]
、文字列の代わりに配列( )を の各要素に入れることですarrayF
。これは明らかにその定義と矛盾します(したがってincompatible types
エラー)。
必要な解決策の 1 つは、文字列の 3 次元配列を使用することです。
String[][][] arr = new String[10][3][20];