我想创建一个如下所示的数组列表:
ArrayList<Individual>[] group = new ArrayList<Individual>()[4];
但它不是编译。我该怎么做呢?
我想创建一个如下所示的数组列表:
ArrayList<Individual>[] group = new ArrayList<Individual>()[4];
但它不是编译。我该怎么做呢?
当前回答
你可以这样做 ArrayList<Individual>[] group = (ArrayList<Individual>[])new ArrayList[4];
您必须创建非泛型类型的数组,然后将其转换为泛型类型。
其他回答
ArrayList<String> al[] = new ArrayList[n+1];
for(int i = 0;i<n;i++){
al[i] = new ArrayList<String>();
}
这种情况的问题是,通过使用数组列表,在特定位置进行加法,你会得到o(n)的时间复杂度。如果使用数组,则通过声明数组来创建内存位置,因此它是常量
你可以这样做 ArrayList<Individual>[] group = (ArrayList<Individual>[])new ArrayList[4];
您必须创建非泛型类型的数组,然后将其转换为泛型类型。
ArrayList<Integer>[] graph = new ArrayList[numCourses] 它的工作原理。
你可以做到的。创建ArrayList类型的Array
ArrayList<Integer>[] a = new ArrayList[n];
为数组中的每个元素创建一个数组列表
for(int i = 0; i < n; i++){
a[i] = new ArrayList<Integer>();
}