我想要一个ArrayLists数组:
ArrayList<MyClass>[] myArray;
我想通过以下代码初始化它:
myArray = new ArrayList<MyClass>[2];
但是我收到了这个错误:
Cannot create a generic array of ArrayList<MyClass>
如何初始化它?
答案 0 :(得分:4)
这在Java中并不是严格可行的,并且自实现以来就没有。
你可以这样解决:
ArrayList<MyClass>[] lists = (ArrayList<MyClass>[])new ArrayList[2];
这可能(确实应该)产生警告,但没有其他方法可以绕过它。老实说,你最好创建ArrayList
ArrayList
s:
ArrayList<ArrayList<MyClass>> lists = new ArrayList<ArrayList<MyClass>>(2);
后者是我推荐的。
答案 1 :(得分:0)
您可以使用
HashMap<some key,ArrayList<MyClass>> or ArrayList<ArrayList<MyClass>>
答案 2 :(得分:0)
由于数组本质上是静态的并且在编译时解析,所以你不能这样做,而是可以使用ArrayList。如
ArrayList<ArrayList<MyClass>>
答案 3 :(得分:0)
这个怎么样?
ArrayList<String>[] f = (ArrayList<String>[]) Array.newInstance(ArrayList.class, size);
for(int ix = 0; ix < f.length;ix++)
f[ix] = new ArrayList<String>();