【问题标题】:ArrayList of ArrayLists, default valuesArrayList 的 ArrayList,默认值
【发布时间】: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 将自身初始化为“初始”状态,也可以作为它“调整大小”的指南——这有助于提高性能。您能否通过检查ArrayListsize 属性来检查这一点,它第一次初始化时将为0,因为其中没有任何内容

标签: java arraylist


【解决方案1】:

ArrayListsize(元素数量)和capacity(在需要自动扩展之前可以容纳的元素数量)可以用于优化,现在你可以放心地忽略@987654324 @ 并根据您的需要添加和删除元素。

创建外部数组:

ArrayList<ArrayList<Integer>> outer = new ArrayList<>();

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-18
    • 2010-12-12
    • 2012-06-03
    • 1970-01-01
    • 2013-04-09
    • 2021-01-20
    • 2012-11-19
    • 1970-01-01
    相关资源
    最近更新 更多