【发布时间】:2018-03-19 02:50:18
【问题描述】:
我是 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是动态的,它会根据需要更改其大小。initialCapacity属性是一个指南,它允许ArrayList将自身初始化为“初始”状态,也可以作为它“调整大小”的指南——这有助于提高性能。您能否通过检查ArrayList的size属性来检查这一点,它第一次初始化时将为0,因为其中没有任何内容