HashMap

HashMap简介

HashMap是一个散列表,存储的是key-value对,线程不安全,key和value可以为null,其映射不是有序的。

两个参数:“初始容量”,“加载因子”。容量是哈希表中桶的数量,初始容量是哈希表创建时的容量。加载因子是哈希表在其容量自动增加前可以达到多满的一种尺度。

构造函数

//指定“容量大小”
HashMap(int capacity)

//指定两个参数
HashMap(int capacity, float loadFactor)

//包含“子Map”
HashMap(Map<? extends K, ? extends V> map)

API

void                 clear()
Object               clone()
boolean              containsKey(Object key)
boolean              containsValue(Object value)
Set<Entry<K, V>>     entrySet()
V                    get(Object key)
boolean              isEmpty()
Set<K>               keySet()
V                    put(K key, V value)
void                 putAll(Map<? extends K, ? extends V> map)
V                    remove(Object key)
int                  size()
Collection<V>        values()

继承关系

java.lang.Object
   ↳     java.util.AbstractMap<K, V>
         ↳     java.util.HashMap<K, V>

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

HashMap继承于AbstractMap类,实现Map接口;HashMap成员·变量:table,size,threshhold,loadFactor,modCount。

table是Entry[]数组类型,Entry实际是单向链表,哈希表的key-value对都存储在Entry数组中。

size是HashMap保存的键值对的数量。

threshhold用于判断是否需要调整HashMap容量,threshhold=loadfactor*capacity,达到阈值时容量加倍。

loadfactor加载因子。

modCount实现fail-fast机制(快速失败)。

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值