我有一个场景,我有一个类是服务器的监听器。当我收到通知时,我会不断向ArrayList
添加一串值。我现在有从这个ArrayList
读取的线程。
这ArrayList
有可能变得非常大。我正在考虑产生一个线程,如果达到最大尺寸,则每10分钟检查一次并删除几行已添加的线。
我想知道实现这个目标的最佳途径是什么?
我应该使用其他DS吗?
答案 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)最坏的情况下。