Java 如何初始化我的泛型数组?
我想要一个ArrayList数组: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<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>();