gpt4 book ai didi

java - 使用哪个集合来进行前面的关键删除并在末尾添加?

转载 作者:行者123 更新时间:2023-12-02 09:13:55 25 4
gpt4 key购买 nike

我正在实现一种算法,该算法将在集合末尾添加字符串并在开头删除字符串。在极少数情况下,我将执行随机访问删除以将其推到最后。我主要是一名 C++ 开发人员,我不确定在 java 的关键循环中使用什么好。我认为 java 列表不太适合这项任务。当然它会起作用,但我已经在性能问题上苦苦挣扎。

链表? vector ?有什么建议吗?

最佳答案

我建议使用ArrayDeque,它实现QueueDeque接口(interface)但不实现 List (您可能不需要):

Resizable-array implementation of the Deque interface. Array deques have no capacity restrictions; they grow as necessary to support usage. They are not thread-safe; in the absence of external synchronization, they do not support concurrent access by multiple threads. Null elements are prohibited. This class is likely to be faster than Stack when used as a stack, and faster than LinkedList when used as a queue.

您还提到删除:

This interface provides two methods to remove interior elements, removeFirstOccurrence and removeLastOccurrence.

ArrayDeque 提供您需要的所有方法 - addFirst(E e)addLast(E e)removeFirst( )

另请参阅this question了解有关 ArrayDeque 的更多信息。

附注这是 some collections benchmark来自上面的链接,其中包含其他人提到的 ArrayDequeLinkedListArrayList ;)

关于java - 使用哪个集合来进行前面的关键删除并在末尾添加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12202611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com