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

不论大小写如何检查地图中的键?

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

不论大小写如何检查地图中的键?

常规地图则不行。

“ abc”是与“ ABC”不同的字符串,它们的哈希码不同,并且其equals()方法相对于彼此将返回false。

最简单的解决方案是在插入/检查之前将所有输入都简单地转换为大写(或小写)。您甚至可以编写自己的

Map
包装程序,以确保一致性。

如果您要保持提供的键的大小写不变,但要进行不区分大小写的比较,则可以考虑使用TreeMap并提供自己的Comparator,该比较器将不区分大小写地进行比较。但是,在走这条路线之前,请三思而后行,因为您最终
遇到一些无法调和的不一致之处-
如果有人打了电话,那么地图中存储的密钥是​​什么情况?您甚至可以说得通吗?如果有人将您的地图包装在标准中(例如,您将失去功能),您是否感到满意?还是如果有人碰巧要遍历您的键集,而他们自己的快速“包含”检查通过使用您会得到不一致的结果呢?同样会有很多其他情况。

map.put("abc", 1)``map.put("ABC", 2)``HashMap``equals()
请注意, 这样做
违反了Map的约定
(因为键相等性是根据keys的equals()方法定义的),因此它实际上在任何意义上都不可行。


维护严格的大写地图 非常 容易使用和维护,并且具有实际上是合法的Map实现的优势。



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

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

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