代码:
let treeMap : TreeMap<string,string> = new TreeMap<string,string>((firstValue: string, secondValue: string) : boolean => {return firstValue > secondValue});
treeMap.set("aa","3");
treeMap.set("dd","1");
treeMap.set("cc","2");
treeMap.set("bb","4");
let numbers = Array.from(treeMap.keys())
for (let item of numbers) {
console.log("treeMap:" + item); // key: dd cc bb aa
}
treeMap.clear();
treeMap.set("aa","3");
treeMap.set("dd","1");
treeMap.set("cc","2");
treeMap.set("bb","4");
numbers = Array.from(treeMap.keys())
for (let item of numbers) {
console.log("treeMap:" + item); //key: aa bb cc dd
}
容器类TreeMap和TreeSet的构造函数支持传入比较器,通过传入比较器来控制元素在二叉树上的插入位置。但是调用了TreeMap和TreeSet的clear方法时,预期结果为仅清除数据,但实际结果为清除数据的同时还清除了用户传入的比较器,导致再次插入数据时不会遵循用户传入的比较器的规则,而是按照默认比较器的规则,这是怎么回事呢?
在beta2版本已经修复了该问题,可以升级到beta2版本尝试。