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