0

文字列オブジェクトの単純なコレクションは約 10 要素かもしれませんが、このコレクションを本番環境で使用して、そのコレクションで特定の文字列を何百万回も検索します。取得に使用できる最良のコレクションまたはデータ構造は何ですか?検索操作を 0(1) 時間で実行できるようにするための最良の結果 ここで HashMap を使用できますが、検索の順序は 0(1) ではなく一定時間です。検索が 0(1) であることを確認したいと思います。

データ構造は、存在する場合は true 、存在しない場合は false を返す必要があります

4

3 に答える 3

5

HashSet<String>構造体を使用してください。操作のcontains()複雑さは O(1) です。

于 2012-02-12T18:33:56.813 に答える
1

定数時間O(1) です。 HashMap結構です。(またはHashSet、 が必要か が必要かによって異なりますSetMap)

セットが不変の場合、GuavaImmutableSetはメモリ フットプリントを最大 3 分の 1 に削減します (おそらく、速度が向上する小さな一定の係数が得られます)。

于 2012-02-12T18:33:25.813 に答える
0

前に提案したように HashSet/HashMap を使用できない場合は、基数ツリーの実装を作成できます。

于 2012-02-12T19:15:25.637 に答える