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,取决于您需要 aSet还是Map。)

如果你的 set 是不可变的,Guava 的ImmutableSet内存占用会减少约 3 倍(并且可能会给你一个小的常数因子来提高速度)。

于 2012-02-12T18:33:25.813 回答
0

如果你不能像之前建议的那样使用 HashSet/HashMap,你可以编写一个Radix Tree实现。

于 2012-02-12T19:15:25.637 回答