简介
HashMap是采用链表和位桶来来实现的,由于一个位桶存在元素太多会导致get效率低,因此在jdk1.8中采用的红黑树实现,当链表长度大于TREEIFY_THRESHOLD(值为8)时会转换为红黑树来提高查询效率。
HashMap是一种以键值对存储的框架,它是Map的实现类,提供了Map的基础操作,与HashTalbe不同的是HashMap不是线程安全的,key和value都是允许为null的;另外hashmap存储的内容顺序会变化的。
HashMap对与get和put操作提供了相对稳定的性能;如果注重Iteration迭代集合的性能,则不能设置初始化容量(capacity)太高或者负载因子(load factor)太低。影响HashMap性能的两个重要参数是初始化容量(initial capacity)和负载因子(load factor),初始化容量是至哈希表在创建时候的桶(bucket)的个数,负载因子是当哈希表放满的时候进行的增量系数,默认为0.75。
HashMap默认是线程不安全的 ,如果需要同步需要通过Cllections工具类进行包装:Map m = Collections.synchronizedMap(new HashMap(...));
示意图
纯手工画的,请容忍_!
关系图
使用示例
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26