java中HashMap、LinkedHashMap、TreeMap有什么区别呢?
下文笔者讲述HashMap、LinkedHashMap、TreeMap之间的区别,如下所示
HashMap、LinkedHashMap、TreeMap区别
下文笔者将从迭代顺序、时间复杂度、接口、空值、线程安全等方面介绍他们的区别特性 | HashMap | TreeMap | LinkedHashMap |
迭代顺序 | 没有保证的顺序,会随着时间的推移保持不变 | 按照自然顺序排序 | 插入顺序 |
获取/放置/删除/包含 | key O(1) | O(log(n)) | O(1) |
接口(interface) | map | 可导航 map 、 map 、排序 map | map |
空值/键 | 允许 | 只有值 | 允许 |
快速失败的行为 | 无法保证迭代器的快速失败行为,在存在不同步的并发修改的情况下无法做出任何硬保证 | 无法保证迭代器的快速失败行为,在存在不同步的并发修改的情况下无法做出任何硬保证 | 无法保证迭代器的快速失败行为,在存在不同步的并发修改的情况下无法做出任何硬保证 |
实现 | 桶 | 红黑树 | 双链接桶 |
已同步 | 实现不同步 | 实现不同步 | 实现不同步 |
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。