栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

HashMap中的部分搜索

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HashMap中的部分搜索

是的,为此,HashMap不是正确的数据结构。正如博佐所说,特里(Trie)是正确的选择。

使用Java的内置工具,可以使用TreeMap(或实际上的SortedMap):

public <V> SortedMap<String, V> filterPrefix(SortedMap<String,V> baseMap, String prefix) {    if(prefix.length() > 0) {        char nextLetter = prefix.charAt(prefix.length() -1) + 1;        String end = prefix.substring(0, prefix.length()-1) + nextLetter;        return baseMap.subMap(prefix, end);    }    return baseMap;}

输出甚至可以按键排序。

这里是一个用法示例:

SortedMap<String, String> nameNum = new TreeMap<String, String>();// put your phone numbersString prefix = ...;for(Map.Entry<String,String> entry : filterPrefix(nameNum, prefix).entrySet()) {    System.out.println(entry);}

如果您希望前缀过滤器不取决于大小写差异,请为地图使用合适的Comparator(例如

Collator
具有适当强度设置的或
String.CASE_INSENSITIVE_ORDER
)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/419061.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号