简述HashMap、TreeMap、Hashtable、HashSet和ConcurrentHashMap区别(随笔)

本文详细对比了HashMap、TreeMap、Hashtable、HashSet和ConcurrentHashMap的区别。HashMap基于散列表,提供快速访问,而TreeMap基于红黑树,保证有序。HashMap与Hashtable的主要区别在于线程安全和是否允许null值。HashSet是HashMap的实现,不存储重复元素。ConcurrentHashMap在多线程环境下提供了线程安全的Map操作。LinkedHashMap是有序的HashMap子类,记录插入顺序或访问顺序。
摘要由CSDN通过智能技术生成

                         

一、HashMap和TreeMap区别

1、HashMap是基于散列表实现的,时间复杂度平均能达到O(1)。TreeMap基于红黑树(一种自平衡二叉查找树)实现的,时间复杂度平均能达到O(log n)。

2、HashMap、TreeMap都继承AbstractMap抽象类;TreeMap实现SortedMap接口,所以TreeMap是有序的!HashMap是无序的。

接口层次:

public interface SortedMap<K,V> extends Map<K,V>

public interface NavigableMap<K,V> extends SortedMap<K,V>

public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable

3、两种常规Map性能

HashMap:适用于在Map中插入、删除和定位元素。

Treemap:适用于按自然顺序或自定义顺序遍历键(key)。

4.总结:HashMap通常比TreeMap快一点(树和哈希表的数据结构使然),建议多使用HashMap,在需要排序的Map时候才用TreeMap。</

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值