ArrayLists的ArrayList,默认值

时间:2018-03-19 02:50:18

标签: java arraylist

我是Java的初学者,我正在尝试创建一个存储包含整数的ArrayLists的ArrayList。我已经知道外部ArrayList的大小,并且想要存储内部ArrayLists。然后,我想要将所有狗ID号添加到存储在外部ArrayList的第一个索引中的ArrayList,第二个中的cat ID号和第三个中的蜥蜴ID号。这将以随机顺序发生,所以我想要外部ArrayList已经初始化了它的大小,所以当我遇到它时,我可以向它发送一个正确的内部列表的ID号。这就是我所做的:

ArrayList<ArrayList<Integer>> outer = new ArrayList<ArrayList<Integer>>(capacity);
ArrayList<Integer> inner = new ArrayList<Integer>(); 
    for (int i = 0; i < capacity; i++) {
        outer.add(null);
    }   

将这些索引初始化为null会将大小增加到capacity中存储的任何数字,并允许我稍后通过执行outer.get(3).add(10)然后outer.get(0).add(22)将狗添加到内部?

我也考虑过这样做:

ArrayList<ArrayList<Integer>> outer = new ArrayList<ArrayList<Integer>>(capacity);
ArrayList<Integer> inner = new ArrayList<Integer>(); 
    for (int i = 0; i < capacity; i++) {
        outer.add(inner);
    }   

但是不知道添加内部是否会将outer中的所有索引初始化为整数数组列表,或者它们是否会引用&#34;内部&#34;变量本身或类似的东西。

1 个答案:

答案 0 :(得分:3)

ArrayList具有size(元素数量)和capacity(它需要自动展开之前可以容纳的元素数量),可用于优化您可以放心地忽略capacity,只需根据需要添加和删除元素。

使用:

创建外部数组
ArrayList<ArrayList<Integer>> outer = new ArrayList<>();

然后添加所需的所有内部数组:

for (int i = 0; i < capacity; i++) {
    outer.add(new ArrayList<Integer>());
}