我想创建一个如下所示的数组列表:

ArrayList<Individual>[] group = new ArrayList<Individual>()[4];

但它不是编译。我该怎么做呢?


当前回答

这种情况的问题是,通过使用数组列表,在特定位置进行加法,你会得到o(n)的时间复杂度。如果使用数组,则通过声明数组来创建内存位置,因此它是常量

其他回答

ArrayList<String>[] lists = (ArrayList<String>[])new ArrayList[10]; 

List[] listArr = new ArrayList[4];

上面这行给出了警告,但它是有效的(即它创建了ArrayList的数组)

这种情况的问题是,通过使用数组列表,在特定位置进行加法,你会得到o(n)的时间复杂度。如果使用数组,则通过声明数组来创建内存位置,因此它是常量

如此:

ArrayList<String>[] group = new ArrayList[4];

尽管它会产生一个你可能想要抑制的警告。

ArrayList<String> al[] = new ArrayList[n+1];
for(int i = 0;i<n;i++){
   al[i] = new ArrayList<String>();
}