Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 插入和删除值的最佳DS?_Java_Data Structures_Arraylist - Fatal编程技术网

Java 插入和删除值的最佳DS?

Java 插入和删除值的最佳DS?,java,data-structures,arraylist,Java,Data Structures,Arraylist,我有一个场景,其中有一个类是服务器的侦听器。收到通知后,我会不断向ArrayList添加一个值字符串。我现在有了从这个ArrayList读取的线程 这个ArrayList有可能变得非常庞大。我正在考虑生成一个线程,每10分钟检查一次是否已达到最大大小,并删除添加的几行 我想知道实现这一目标的最佳方式是什么 我应该使用另一个DS吗? 您可能需要考虑使用.< /p> *ArrayList.add在需要调整数组大小的最坏情况下运行O(n)。如果我是你,我不会提出自己的数据删除算法,而是坚持使用队列的实

我有一个场景,其中有一个类是服务器的侦听器。收到通知后,我会不断向
ArrayList
添加一个值字符串。我现在有了从这个
ArrayList
读取的线程

这个
ArrayList
有可能变得非常庞大。我正在考虑生成一个线程,每10分钟检查一次是否已达到最大大小,并删除添加的几行

我想知道实现这一目标的最佳方式是什么


我应该使用另一个DS吗?

您可能需要考虑使用.< /p>
*
ArrayList.add
在需要调整数组大小的最坏情况下运行O(n)。

如果我是你,我不会提出自己的数据删除算法,而是坚持使用队列的实现。查看它们,看看它们是否符合您的需要。如果您说如果您已满,只想丢弃一些条目,建议您考虑使用循环队列。
                 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)