最好的DS插入和删除值?

时间:2012-05-24 22:03:13

标签: java data-structures arraylist

我有一个场景,我有一个类是服务器的监听器。当我收到通知时,我会不断向ArrayList添加一串值。我现在有从这个ArrayList读取的线程。

ArrayList有可能变得非常大。我正在考虑产生一个线程,如果达到最大尺寸,则每10分钟检查一次并删除几行已添加的线。

我想知道实现这个目标的最佳途径是什么?

我应该使用其他DS吗?

1 个答案:

答案 0 :(得分:0)

您可能需要考虑使用LinkedList

                 ArrayList    LinkedList
add                O(1)*         O(1)
remove             O(n)          O(n)
Iterator.remove    O(n)          O(1)
insert             O(n)          O(1)
get                O(1)          O(n)
如果需要调整数组大小,

* ArrayList.add运行在O(n)最坏的情况下。