Java 在树映射中查找键而不区分大小写

Java 在树映射中查找键而不区分大小写,java,treemap,case-insensitive,Java,Treemap,Case Insensitive,所以基本上我有树形图,我想在其中找到键。事情是,在使用一些比较器后,在容器中搜索ABC或ABC或ABC或ABC或AbCor ABC应该返回true 问题是,我已经尝试将字符串全部转换为小写和大写,但有时我需要像aBC一样的键,因为我需要打印键,而打印aBC和aBC或aBC是不同的事情 那么您知道另一种方法吗?在添加到地图和搜索时使用toLower。但是,如果希望能够为只在大写/小写中不同的键存储不同的值,则必须添加特殊处理 如果需要保留原始大小写,则必须修改value对象以存储它 您可能还希望对

所以基本上我有树形图,我想在其中找到键。事情是,在使用一些比较器后,在容器中搜索ABC或ABC或ABC或ABC或AbCor ABC应该返回true

问题是,我已经尝试将字符串全部转换为小写和大写,但有时我需要像aBC一样的键,因为我需要打印键,而打印aBC和aBC或aBC是不同的事情

那么您知道另一种方法吗?

在添加到地图和搜索时使用toLower。但是,如果希望能够为只在大写/小写中不同的键存储不同的值,则必须添加特殊处理

如果需要保留原始大小写,则必须修改value对象以存储它

您可能还希望对TreeMap进行子类化,并重写put和get方法来处理toLower调用。请记住覆盖所有获取或放置值的方法。

或包装您的键:class Key{private final String Key;publicKey@Nonnull字符串键{this.key=key;}//原始的、区分大小写的键public-getKey{return-key;}public-boolean-equalsKey-other{返回this.key.toLower.equalsother.key.toLower;}public int hashCode{return key.toLower.hashCode;}}