我有一个像这样的列表
public List<String>[] Depth_List;
现在在这个列表的每个索引我想创建和ArrayList。数组的大小将由用户给出。初始化它的函数为
public void CreateList(int deep){
Depth_List= new ArrayList<String>[deep];
for (int d_i = 0; d_i <deep; d_i++)
{
Depth_List[d_i]= new ArrayList<String>();
}
}
}
我做错了什么?
此致
答案 0 :(得分:3)
你可以这样做:
public List<List<String>> depthList;
public void CreateList(int deep) {
depthList= new ArrayList<List<String>>();
for (int d_i = 0; d_i <deep; d_i++) {
depthList.add(new ArrayList<String>());
}
}
附注:请阅读Java naming conventions。您的代码将更具可读性。
答案 1 :(得分:2)
您无法像在数组中一样设置arrayList的大小(使用[])
答案 2 :(得分:2)
您可以使用初始容量设置ArrayList以进行优化:
public List<List<String>> createDepthList(int depth)
{
List<List<String>> result = new ArrayList<List<String>>(depth);
for int(i = 0; i < depth; i++)
{
result.add(new ArrayList<String>());
}
return result;
}