我有以下用例:
我想问一下,鉴于我需要在列表上进行操作,例如
,这种情况的最佳列表实现是什么?感谢。
答案 0 :(得分:2)
如果您事先知道列表的大小(或上限)并且可以保证不插入,那么您需要使用ArrayList。
它由数组备份,因此查找速度很快。
答案 1 :(得分:0)
java.util.ArrayList
似乎最好(由向量支持)。您需要预先做的一件事是在构造实例时保留足够的空间(如果您知道前面的元素数量,则最好),以避免在调整大小的矢量分配上进行复制。
与LinkedList
相比的另一个胜利是缺少节点引用,与ArrayList
相比,所需的堆大小减少了大约两倍。
答案 2 :(得分:0)
单个集合类型无法满足所有这些用例。我能看到的最近的是TreeSet。