繁体   English   中英

使用HashMap搜索功能

[英]Using a HashMap for search capabilites

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

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

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

还有其他选择吗?

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

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

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

ArrayListListLinkedList

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

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

或如建议的注释,您可以使用HashSet

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

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

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

关于Bloom Filters的很酷的文章。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM