关于treeMap不能根据value排序的原因

来源:10-4 HashMap

qq_君君晨晨_0

2020-09-23

今天面试官问我treeMap是根据什么来排序,我答的是能根据key和value综合排序,后来从网上一搜发现只能根据key排序。

想知道为什么不能根据value排序呢,我想的是因为treeMap本质上是一个查找树,我们可以实现comparator接口,然后在compare中综合比较key和value,然后建树,增加树节点,删除节点,都按compare中的逻辑来判断大小,这样就保证逻辑是一致的,然后就可以实现综合排序了,如果要修改树节点可以,先删除节点,再添加节点。

总的来说,我的想法就是只要保证排序逻辑前后一致,根据key和value综合排序是可以的,因为建的树是合理的,我这样想有什么问题么?

写回答

1回答

翔仔

2020-09-24

同学好,

TreeMap 默认排序规则:按照key的字典顺序来排序(升序),主要是因为我们通常的用法习惯都是按照某类线索来排序,线索通常跟key相关。

当然,也可以自定义排序规则:要实现Comparator接口。

所以同学的理解是正确的

0
3
qq_君君晨晨_0
非常感谢!
2020-09-25
共3条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程