我有一个清单>现在我想在不考虑案例的情况下搜索密钥。 即map.get(0).get(" test")或map.get(0).get(" TEST")。这两个结果都应该给出关键' TESt'。
的价值我正在填写List>从其他列表中列出>如下。无法更改原始地图。谁能告诉我如何用大写字母添加键?
mappedListHashed是List> accessLvlArray是List>
for (HashMap<String, String> map : mappedListHashed) {
accessLvlArray.add(map);
}
答案 0 :(得分:3)
您可以随时在地图中放置小写字母
list.get(0).put("tEst".toLowerCase(),"value");
并致电
list.get(0).get("Test".toLowerCase())
以便始终搜索密钥的小写版本。
如果这不是一个选项,您可以使用自定义类来包装String键,该类以忽略大小写的方式覆盖equals
和hashCode
。
答案 1 :(得分:1)
您可以尝试覆盖put方法:
public class myMap extends HashMap<String, String> {
@Override
public String put(String key, String value) {
return super.put(key.toLowerCase(), value);
}
public String get(String key) {
return super.get(key.toLowerCase());
}
}