带字符串对象的简单集合,允许在0(1)操作中进行搜索

时间:2012-02-12 18:29:39

标签: java search collections hashmap processing-efficiency

我有简单的字符串对象集合可能是10个元素, 但是我在生产环境中使用这个集合,以便我们在该集合中搜索数百万个tiimes中的给定字符串, 什么是我们可以用来获得最佳结果的最佳集合或数据结构,以便可以在0(1)时间内执行搜索操作 我们可以在这里使用HashMap,但搜索的顺序是在常数时间不是0(1)我想确保搜索是0(1)。

如果存在,我们的数据结构必须返回true,否则返回false

3 个答案:

答案 0 :(得分:5)

使用HashSet<String>结构。 contains()操作的复杂度为O(1)。

答案 1 :(得分:1)

常数时间 O(1)。 HashMap没问题。 (或HashSet,具体取决于您是需要Set还是Map。)

如果你的集合是不可变的,那么Guava的ImmutableSet会将内存占用减少约3倍(并且可能会给你一个很小的恒定因素来提高速度)。

答案 2 :(得分:0)

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