gpt4 book ai didi

java - 仅保存键的数据结构(不关心值)

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:14:55 24 4
gpt4 key购买 nike

我需要存储一个字符串列表,并需要检查列表中是否存在一个字符串。

我通常只会使用一些带有键和 boolean 值的 map ...即

HashMap map<String,Boolean> = new HashMap<String,Boolean)()

只需做一个map.contains(string)

这是我过去一直执行此类查找的某种方式,因为我知道使用 map 的访问权限为 O(1)。

我知道这可能很挑剔而且不重要,但我只是好奇是否有某种结构可以保存该 boolean 值。似乎是在浪费内存,因为我不关心 false 值,因为如果键不存在则等同于 false。

我在想也许将关键字指向 null 会做我想做的事,但我想知道是否有某种数据结构可以做到这一点。

最佳答案

这就是Set<T> Collection 是为了。 HashSet<T>实现是 O(1) 并且在内部按照您的建议进行:它是一个 HashMap<T,V>其中每个键的值是相同的内部对象实例。即源包含

// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();

并且每个条目的值设置为PRESENT .

关于java - 仅保存键的数据结构(不关心值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9540482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com