3

我有一个这样的列表

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>();
        }

    }
}

我究竟做错了什么?

问候

4

3 回答 3

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 命名约定。您的代码将更具可读性。

于 2013-05-07T05:48:36.340 回答
2

你不能像在数组中那样设置你的arrayList的大小(通过使用[])

于 2013-05-07T05:46:38.793 回答
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;
}
于 2013-05-07T05:55:53.147 回答