1

我有一种情况,我需要一个可以添加字符串的数据结构。这个数据结构很大。

我需要它的具体品质是:

  1. 获取(索引)
  2. 删除超出限制时最初添加的一定数量的条目。(LIFO)

我尝试过使用 ArrayList,但删除操作是 o(n),而对于linkedList,遍历或 get() 操作将是 o(n)。

我还有什么其他选择?

4

2 回答 2

6

循环缓冲区- 一个在引擎盖下使用数组实现的缓冲区。

于 2012-05-31T00:25:21.857 回答
0

LinkedHashSet 可能很有趣。它实际上是一个 HashSet,但它还维护一个 LinkedList 以允许可预测的迭代顺序 - 因此也可以用作 FIFO 队列,它的好处是它不能包含重复的条目。

因为它也是一个 HashSet,所以搜索(而不是扫描)可以是 O(1),如果它们可以匹配equals()

你可以看看这个问题和这个

于 2012-05-31T00:25:26.830 回答