热门

最新

红包

立Flag

投票

同城

我的

发布
young2415
supermouse_
5 年前
trueyoung2415

Java 中的 TreeMap 能够按照 key 进行排序,实现键值对的有序存储,与 HashMap 将数组作为存储结构不同,TreeMap 以红黑树作为存储结构,红黑树的每一个节点就是一个键值对。

TreeMap 的优点:
一、因为底层是红黑树,所以插入键值对的时候总能保证 key 是有序的,不需要专门对其进行排序。排序时可以按照自然顺序比较 key 的大小,也可以让 key 实现 Comparator 接口,自定义比较器。
二、TreeMap 插入键值对的时间复杂度是 O(logn),且这个时间复杂度是很稳定的。不像 HashMap,如果没有哈希冲突,则 HashMap 的插入时间复杂度是 O(1),如果有哈希冲突的话,时间复杂度大约是 O(logk)(k 是哈希冲突的键值对数量),如果遇到数组扩容,则时间复杂度更高了。

TreeMap 的缺点:
同样由于红黑树的缘故,TreeMap 查找的时间复杂度无法做到 HashMap 的 O(1),而是 O(logn)。

CSDN App 扫码分享
分享
评论
点赞
打赏
  • 复制链接
  • 举报
下一条:
实习的话 工资一般多少 像郑州这样的城市 后端开发
立即登录