不区分大小写的比较器打破了我的树图
A 我在我的使用打破了我打算的行为。请看下面的代码:Comparator
TreeMap
TreeMap
TreeMap<String, String> treeMap = new TreeMap<>(new Comparator<String>() {
public int compare(String o1, String o2) {
return o1.toLowerCase().compareTo(o2.toLowerCase());
}
});
treeMap.put("abc", "Element1");
treeMap.put("ABC", "Element2");
我认为我所做的是,我创建了一个按其键排序的地图,不区分大小写。两个不同的元素具有不相等的键 (和),其比较将返回 。我期望只是对这两个元素进行随机排序。然而,命令:abc
ABC
0
System.out.println("treeMap: " + treeMap);
结果是:
treeMap: {abc=Element2}
该键已重新分配值 !abc
Element2
任何人都可以解释这是如何发生的,如果这是一个有效的,有记录的行为?TreeMap