jdk1.8中HashMap是由哈希表+链表+红黑树构成,当添加一个键值对时:
首先判断当前map对象是否为空,key值hash索引对应的元素是否为空,当都不为空时,
当key值索引对应元素的key值与改key值相等的时候,直接赋值;
当key值索引对应元素指向链表时,遍历链表,比较key值相等,覆盖原有的值,直到尾部,添加一个结点;
当key值索引对应元素指向红黑树时,红黑树遍历key值相等覆盖,不等插入
jdk1.8中HashMap是由哈希表+链表+红黑树构成,当添加一个键值对时:
首先判断当前map对象是否为空,key值hash索引对应的元素是否为空,当都不为空时,
当key值索引对应元素的key值与改key值相等的时候,直接赋值;
当key值索引对应元素指向链表时,遍历链表,比较key值相等,覆盖原有的值,直到尾部,添加一个结点;
当key值索引对应元素指向红黑树时,红黑树遍历key值相等覆盖,不等插入
转载于:https://my.oschina.net/mynameClarence/blog/3028388