【发布时间】:2019-05-21 00:09:07
【问题描述】:
想知道是否有一种有效的方法可以将项目添加到 Java 的 ArrayList 中,使其位置大于其当前大小:
场景:
ArrayList<Item> items = new ArrayList<Item>;
... let's say I add three elements
现在我想在位置 10 添加一个项目(将项目从 3 到 10 保留为 null)
items.add(10,newItem); // item.size() == 3
有没有一种有效的方法来调整/填充 ArrayList 的大小?
Java 的实现将 size 字段设为私有 :-(..
【问题讨论】:
-
你应该使用 HashMap 或 SortedMap 来代替。
-
好吧,使用 Map 不是内存问题的解决方案,我们知道最后结构已满 -> TIntObjectHashMap (trove) 可能
-
HashMap 不支持排序。 SortedMap 是更好的选择。
-
内存是什么原因?为什么你会假设 Map 使用的内存比列表多得多?
-
一种方法是拨打
add(null)8 次。