1

文字列を追加できるデータ構造が必要な状況があります。このデータ構造は非常に大きいです。

私が必要とする特定の資質は次のとおりです。

  1. get(index)
  2. 制限を超えたときに最初に追加された特定の数のエントリを削除します。(LIFO)

ArrayListを使用してみましたが、削除操作はo(n)であり、linkedListの場合はtraverseまたは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 に答える