代码之家  ›  专栏  ›  技术社区  ›  rahs

使用HashMap搜索功能

  •  0
  • rahs  · 技术社区  · 7 年前

    我需要使用一个数据结构,可以提供一个低搜索时间,但不需要存储键,值对。

    我只需要检查集合中是否存在元素。

    有其他选择吗?这合理吗?

    4 回复  |  直到 7 年前
        1
  •  4
  •   Mark Bramnik    7 年前

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

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

        2
  •  2
  •   SamHoque    7 年前

    为什么需要哈希图?这里有几个ArrayList的例子。

    ArrayList List , LinkedList

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

    或者如注释所示,您可以使用HashSet

    HashSet<String> hashSet = new HashSet<>();
    hashSet.add("Item");
    
        3
  •  0
  •   codeLover Sumit Tyagi    7 年前

    你可以和我一起去 哈希集 contains(Object o) 方法可以帮助您完成所需的操作。它回来了 true 如果元素存在,则返回 false .

        4
  •  0
  •   wolfdale    7 年前

    你可以使用布鲁姆过滤器。它用于测试元素是否是集合的成员。假阳性匹配是可能的,但假阴性不是换句话说,查询返回“可能在集合中”或“肯定不在集合中”。元素可以添加到集合中,但不能删除(尽管这可以通过“计数”过滤器解决);添加到集合中的元素越多,误报的概率就越大。

    Cool article on Bloom Filters.