HashMap<String, Integer> 搜索键的一部分?

2022-09-02 09:00:25

我目前正在使用,它充满了类型的键,比方说,5个字符长。我如何搜索4个字符或更少的特定密钥,这是其他一些键的一部分和开头,并将所有命中作为集合获取?HashMap<String, Integer>String<Key, Value>


答案 1

迭代是您唯一的选择,除非您创建自定义数据结构:

for (Entry<String, Integer> e : map.entrySet()) {
    if (e.getKey().startsWith("xxxx")) {
        //add to my result list
    }
}

如果您需要更省时的东西,那么您需要一个映射的实现,您可以在其中跟踪这些部分键。


答案 2

这似乎是一个用例,而不是.不同之处在于树状图保留了顺序。因此,您可以更快地找到部分匹配项。您不必浏览整个地图。TreeMapHashMap

检查此问题 在哈希图中部分搜索