map集合的特点:

map集合的结构是:键值对、KEY与VALUE、Map.Entry<K,V>的映射关系

map中key值不允许重复,如果重复,对应的value会被覆盖

map中的映射关系是无序的

map没有自己的迭代器,所以迭代时通常需要转成set集合来迭代

 

map集合的存储过程:

1,HashMap底层是entry[]数组,初始长度为16,加载因子0.75f(每次扩容是初始长度的2倍),其中加载因子:当数组长度大于4分之3的时候,数组自动扩容为长度为32的数组

2,HashMap中数据存放的位置是根据hash(key)%n来确定的,如果出现hash碰撞(即出现两个位置相同的数据,那么第二个数据的存放位置是以第一个数据位置为基础的一个链表,其中当hash(key)%n相同的个数>8并且

  数据组的长度大于64的时候,链表就变成了红黑数)

3,当链表的长度<6是,红黑数变成链表

4,hashmap的存储过程图解如下;

map集合的存储过程_数组