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

Mac*_*htl 17 java search hashmap

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

cyb*_*org 23

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

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

如果您需要更高效的时间,那么您需要在跟踪这些部分键的地图实现.


Ond*_*zek 6

这似乎是一个 forTreeMap而不是的用例HashMap。不同之处在于 TreeMap 保留了顺序。所以你可以更快地找到你的部分匹配。您不必浏览整个地图。

检查这个问题HashMap 中的部分搜索