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)
如果您需要更高效的时间,那么您需要在跟踪这些部分键的地图实现.
这似乎是一个 forTreeMap而不是的用例HashMap。不同之处在于 TreeMap 保留了顺序。所以你可以更快地找到你的部分匹配。您不必浏览整个地图。
检查这个问题HashMap 中的部分搜索