我是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;变量本身或类似的东西。
答案 0 :(得分:3)
ArrayList
具有size
(元素数量)和capacity
(它需要自动展开之前可以容纳的元素数量),可用于优化您可以放心地忽略capacity
,只需根据需要添加和删除元素。
使用:
创建外部数组ArrayList<ArrayList<Integer>> outer = new ArrayList<>();
然后添加所需的所有内部数组:
for (int i = 0; i < capacity; i++) {
outer.add(new ArrayList<Integer>());
}