【发布时间】:2016-01-02 22:35:22
【问题描述】:
我有一张地图:
static Map<String, String> = getMap(); //getting a map from a config file.
现在在这张地图中,我需要使用 KEYS 执行不区分大小写的搜索。我不是通过 put 函数将值放入 map 中,但您可以将其视为以键值格式存储在数据库中的值,并将其作为 Map 检索。我需要进行 caseInsentive 搜索。
经过研究,使用TreeMap可以解决问题,但效率不高--> O(log n)
或者覆盖 HashMap 的 get() 方法,创建我自己的 HashMap。但这将包括覆盖许多方法,我不想要这么多,它不是非常重要的代码的一部分。
现在我正在将值以小写形式存储在数据库中并进行检查。但这使得它在数据库中容易出错,而且不可读。
有没有更简单的方法可以做到这一点?
【问题讨论】:
-
您是在搜索键还是值?
-
你看过CaseInsensitiveMap吗?
-
您到底在搜索什么(在键或值中)?您在寻找完全匹配还是部分匹配?你能在你的问题中提供一些例子吗?
-
我正在寻找一个完整的匹配,只是为了不区分大小写。我正在寻找钥匙。不区分大小写的地图不是通用的,我该如何使用它?
-
数据库基本上是一个文件,以这种格式存储它。
标签: java dictionary hashmap hashcode case-insensitive