我想创建一个如下所示的数组列表:
ArrayList<Individual>[] group = new ArrayList<Individual>()[4];
但它不是编译。我该怎么做呢?
我想创建一个如下所示的数组列表:
ArrayList<Individual>[] group = new ArrayList<Individual>()[4];
但它不是编译。我该怎么做呢?
当前回答
我发现这个更容易使用…
static ArrayList<Individual> group[];
......
void initializeGroup(int size)
{
group=new ArrayList[size];
for(int i=0;i<size;i++)
{
group[i]=new ArrayList<Individual>();
}
其他回答
你可以创建一个List[]并通过for循环初始化它们。它编译时没有错误:
List<e>[] l;
for(int i = 0; i < l.length; i++){
l[i] = new ArrayList<e>();
}
它也适用于arrayList[] l。
创建和初始化 对象[]yourArray = new对象[ARRAY_LENGTH]; 写访问 yourArray[我]= someArrayList; 访问内部数组列表的元素: ((ArrayList < YourType >) yourArray[我])阀门(elementOfYourType);//或其他方法 读访问 将数组元素i读取为数组列表使用类型转换: someElement= (ArrayList<YourType>) yourArray[i]; 对于数组元素i:读取数组列表元素在索引j处的值 arrayListElement= (ArrayList<YourType>) yourArray[i]).get(j);
我想我有点晚了,但我遇到了同样的问题,必须按照我的项目的要求创建一个数组列表数组,以便将不同子类的对象存储在同一个地方,这是我最终所做的:
ArrayList<?>[] items = new ArrayList[4];
ArrayList<Chocolate> choc = new ArrayList<>();
ArrayList<Chips> chips = new ArrayList<>();
ArrayList<Water> water = new ArrayList<>();
ArrayList<SoftDrink> sd = new ArrayList<>();
因为数组中的每个数组列表都包含不同的对象(巧克力,薯条,水和软饮料) 这是一个模拟自动售货机的项目。 然后我将每个数组列表赋值给数组的一个下标:
items[0]=choc;
items[1]=chips;
items[2]=water;
items[3]=sd;
希望这对遇到类似问题的人有所帮助。
如果你想避免Java警告,并且仍然有一个数组列表数组,你可以将数组列表抽象为一个类,就像这样:
public class Individuals {
private ArrayList<Individual> individuals;
public Individuals() {
this.individuals = new ArrayList<>();
}
public ArrayList<Individual> getIndividuals() {
return individuals;
}
}
那么你就可以安全地拥有:
Individuals[] group = new Individuals[4];
ArrayList<Integer>[] graph = new ArrayList[numCourses] 它的工作原理。