Java 设置ArrayList的大小/尺寸<;ArrayList<;字符串>&燃气轮机; 问题

Java 设置ArrayList的大小/尺寸<;ArrayList<;字符串>&燃气轮机; 问题,java,arraylist,Java,Arraylist,我有一个ArrayList的ArrayLists。我将一个复制到另一个,除了以不同的顺序(元素旋转180°,但这并不重要) 我有一个通用代码: ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>(); for (int r = 0; r < 4; r++) { for (int c = 0; c < 5; c++) { lis

我有一个
ArrayList
ArrayList
s。我将一个复制到另一个,除了以不同的顺序(元素旋转180°,但这并不重要)

我有一个通用代码:

ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();

for (int r = 0; r < 4; r++) {
    for (int c = 0; c < 5; c++) {
        list.get(r).set(c, "an element from the other list");
    }
}
这不会编译,但这基本上就是我想要的:

ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>(5)>(4);
这对设置大小很有效,因为矩阵中会添加足够的元素,但这不是首选的解决方案


问题 是否有任何方法可以在初始化期间设置
ArrayList
s的
ArrayList
的初始维度?或者只是迭代和添加
null
值的不同方法?

这对我很有用:

ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>(4);
for (int r = 0; r < 4; r++) {
    ArrayList<String> ls = new ArrayList<String>(5);
    ls.add("" + (r + 1));
    list.add(ls);
}
for (ArrayList<String> ls : list) {
    System.out.println(ls);
}

另一种非常奇怪的方法(不推荐)是:

List<String>[] arrayOfList = new List[4];
for (int i = 0; i < arrayOfList.length; i++) {
    arrayOfList[i] = new ArrayList<String>();
}
List[]arrayOfList=新列表[4];
for(int i=0;i
a
ArrayList
不是数组。它可以动态增长。“我知道在创建ArrayList时,您可以为它指定一个构造函数参数的大小。”您不需要指定大小,只需指定列表的初始容量。大小保持为0,因为您没有添加任何elments。@SotiriosDelimanolis是的,但我需要给它一个初始大小。@ZouZou容量表示它可以拥有的最大大小。这就是我要做的吗?不是实际编辑大小,只是说明可能的最大大小?@mikeyaworski否,它构造具有指定容量的数组(如果不指定容量,则默认为10)。但如果添加更多元素,则备份阵列将自动调整大小。例如
List s=newarraylist(5);对于(int i=0;i<10;i++)s.add(“a”)
将向列表中添加10个字符串。因此,您刚刚创建了一个初始容量为4个ArrayList的ArrayList。但是,就像我所做的那样,每次迭代都必须为列添加一个列表。我希望能找到一种方法来设置外部ArrayList中每个ArrayList的初始容量。@mikeyaworski注意我答案底部的编辑。常规数组的构造更简单,但最终我不想使用它。这实际上是为了一场计算竞赛,ArrayList后来在删除元素等方面派上了用场。只是初始化是我想让它变得更容易的事情。@mikeyaworski只是想指出:在普通Java中没有2d动态数组,除非您创建这样的类或从第三方库导入它。
ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>(4);
for (int r = 0; r < 4; r++) {
    ArrayList<String> ls = new ArrayList<String>(5);
    ls.add("" + (r + 1));
    list.add(ls);
}
for (ArrayList<String> ls : list) {
    System.out.println(ls);
}
String[][] stringArrayOfArray = new String[4][5];
List<String>[] arrayOfList = new List[4];
for (int i = 0; i < arrayOfList.length; i++) {
    arrayOfList[i] = new ArrayList<String>();
}