Java 如何初始化我的泛型数组?

Java 如何初始化我的泛型数组?,java,android,generics,arraylist,initialization,Java,Android,Generics,Arraylist,Initialization,我想要一个ArrayList数组: ArrayList<MyClass>[] myArray; ArrayList[]myArray; 我想用以下代码初始化它: myArray = new ArrayList<MyClass>[2]; myArray=newarraylist[2]; 但我得到了这个错误: Cannot create a generic array of ArrayList<MyClass> 无法创建ArrayList的常规数组 如

我想要一个ArrayList数组:

ArrayList<MyClass>[] myArray;
ArrayList[]myArray;
我想用以下代码初始化它:

myArray = new ArrayList<MyClass>[2];
myArray=newarraylist[2];
但我得到了这个错误:

Cannot create a generic array of ArrayList<MyClass>
无法创建ArrayList的常规数组
如何初始化它?

您可以使用

HashMap<some key,ArrayList<MyClass>> or ArrayList<ArrayList<MyClass>>
HashMap或ArrayList

这在Java中严格来说是不可能的,而且自从实现以来就没有过

您可以这样处理它:

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

后者是我的建议。

因为数组本质上是静态的,并且在编译时解析,所以您不能这样做,而是可以使用ArrayList。作为

ArrayList<ArrayList<MyClass>>
ArrayList
这个怎么样

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


for(int ix = 0; ix < f.length;ix++)
    f[ix] = new ArrayList<String>();
ArrayList[]f=(ArrayList[])Array.newInstance(ArrayList.class,size);
对于(int-ix=0;ix
I cannot have的精确副本
ArrayList
当您在该页面上时,如果按下箭头,您将注意到页面移动,其他答案将出现。话虽如此,选择更多的是你能做的,而不是你想要的。如果您更改
新的ArrayList[2]
新的ArrayList[2]它将工作,但您将收到警告。但我并不推荐它。
Array.newInstance(ArrayList.class,size)
newarraylist[size]
相比没有优势。将
Array.newInstance
与类literal一起使用是没有意义的,但是,要避免将泛型和数组混合使用。在处理泛型时,更喜欢
列表
,而不是数组。
ArrayList<String>[] f = (ArrayList<String>[]) Array.newInstance(ArrayList.class, size);


for(int ix = 0; ix < f.length;ix++)
    f[ix] = new ArrayList<String>();