harmonyos next TreeMap clear排序失效是怎么回事?

代码:

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方法时,预期结果为仅清除数据,但实际结果为清除数据的同时还清除了用户传入的比较器,导致再次插入数据时不会遵循用户传入的比较器的规则,而是按照默认比较器的规则,这是怎么回事呢?

阅读 689
1 个回答
✓ 已被采纳

在beta2版本已经修复了该问题,可以升级到beta2版本尝试。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进