【发布时间】:2012-09-29 22:50:33
【问题描述】:
如果我需要删除列表中的元素,以下是否比使用LinkedList 更好:
int j = 0;
List list = new ArrayList(1000000);
...
// fill in the list code here
...
for (Iterator i = list.listIterator(); i.hasNext(); j++) {
if (checkCondition) {
i.remove();
i = list.listIterator(j);
}
}
?
LinkedList 比ArrayList 更有效地“删除和添加元素”,但LinkedList 作为双向链表需要更多内存,因为每个元素都包装为Entry 对象。虽然我需要一个单向的List 接口,因为我是按索引升序运行的。
【问题讨论】:
-
您需要定义“更好”——速度还是内存最重要?
-
完全同意@DNA,同时细化访问模式/添加删除频率。
标签: java arraylist linked-list