关于treeMap不能根据value排序的原因
来源:10-4 HashMap
qq_君君晨晨_0
2020-09-23
今天面试官问我treeMap是根据什么来排序,我答的是能根据key和value综合排序,后来从网上一搜发现只能根据key排序。
想知道为什么不能根据value排序呢,我想的是因为treeMap本质上是一个查找树,我们可以实现comparator接口,然后在compare中综合比较key和value,然后建树,增加树节点,删除节点,都按compare中的逻辑来判断大小,这样就保证逻辑是一致的,然后就可以实现综合排序了,如果要修改树节点可以,先删除节点,再添加节点。
总的来说,我的想法就是只要保证排序逻辑前后一致,根据key和value综合排序是可以的,因为建的树是合理的,我这样想有什么问题么?
写回答
1回答
-
同学好,
TreeMap 默认排序规则:按照key的字典顺序来排序(升序),主要是因为我们通常的用法习惯都是按照某类线索来排序,线索通常跟key相关。
当然,也可以自定义排序规则:要实现Comparator接口。
所以同学的理解是正确的
032020-09-25
相似问题