我是 Java 的初学者,我正在尝试创建一个 ArrayList 来存储包含整数的 ArrayList。我已经知道我想要的外部 ArrayList 的大小并且想要存储内部 ArrayList。例如,我想将所有狗 ID 号添加到存储在外部 ArrayList 的第一个索引中的 ArrayList,第二个索引中的猫 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);
}
但不知道添加 inner 是否真的会将 outer
中的所有索引初始化为 Integer ArrayLists,或者它们是否会引用“inner”变量本身或类似的东西。
最佳答案
ArrayList
有size
(元素个数)和capacity
(需要自动扩容前它能容纳的元素个数)可用于优化,现在您可以安全地忽略 capacity
并仅根据您的需要添加和删除元素。
创建外部数组:
ArrayList<ArrayList<Integer>> outer = new ArrayList<>();
然后添加你需要的所有内部数组:
for (int i = 0; i < capacity; i++) {
outer.add(new ArrayList<Integer>());
}
关于java - ArrayList 的 ArrayList,默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49355128/