使用HashMap搜索功能

时间:2018-10-29 05:42:20

标签: java data-structures

我需要使用可以缩短搜索时间的数据结构,但不需要存储键值对。

我需要做的就是检查集合中是否存在某个元素。

我正在考虑将数组中的所有值插入到哈希图中(键和值相同),然后对此执行搜索操作。

还有其他选择吗?

4 个答案:

答案 0 :(得分:4)

如果您不想维护键值对,请考虑使用java.util.HashSet

我假设您的主要用例是在其中添加元素,然后调用具有O(1)复杂性的“包含”

答案 1 :(得分:2)

为什么为此需要HashMap?有一些ArrayList示例。

ArrayListListLinkedList

您可以使用菱形运算符定义要存储在列表中的对象

LinkedList<String>此列表现在存储字符串值。

或如建议的那样,您可以使用HashSet

HashSet<String> hashSet = new HashSet<>();
hashSet.add("Item");

答案 2 :(得分:0)

您可以使用 HashSet contains(Object o)方法可以帮助您完成所需的操作。如果元素存在,则返回true,否则返回false

答案 3 :(得分:0)

您可以使用Bloom Filter。它用于测试元素是否为集合的成员。可能会出现假阳性匹配,但否定否定匹配-换句话说,查询返回“可能在集合中”或“绝对不在集合中”。元素可以添加到集合中,但不能删除(尽管可以使用“计数”过滤器解决);添加到集合中的元素越多,误报的可能性就越大。

Cool article on Bloom Filters.