3

ArrayLists の配列が必要です。

ArrayList<MyClass>[] myArray;

次のコードで初期化します。

myArray = new ArrayList<MyClass>[2];

しかし、私はこのエラーが発生します:

Cannot create a generic array of ArrayList<MyClass>

どうすれば初期化できますか?

4

4 に答える 4

4

これは Java では厳密には不可能であり、Java の実装以降はありません。

次のように回避できます。

ArrayList<MyClass>[] lists = (ArrayList<MyClass>[])new ArrayList[2];

これにより、警告が生成される可能性があります (実際には、警告が生成されるはずです) が、それを回避する他の方法はありません。ArrayList正直なところ、 ofを作成した方がよいでしょうArrayList:

ArrayList<ArrayList<MyClass>> lists = new ArrayList<ArrayList<MyClass>>(2);

私がお勧めするのは後者です。

于 2012-06-20T05:06:52.170 に答える
0

使用できます

HashMap<some key,ArrayList<MyClass>> or ArrayList<ArrayList<MyClass>>
于 2012-06-20T05:05:58.767 に答える
0

配列は本質的に静的であり、コンパイル時に解決されるため、代わりに ArrayList を使用できません。として

ArrayList<ArrayList<MyClass>>
于 2012-06-20T05:07:32.307 に答える
0

これはどう?

ArrayList<String>[] f = (ArrayList<String>[]) Array.newInstance(ArrayList.class, size);


for(int ix = 0; ix < f.length;ix++)
    f[ix] = new ArrayList<String>();
于 2012-06-20T05:08:46.610 に答える