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的存储过程图解如下;