
java基础
jdk 集合 io等常见api
登山亻
从0到1
展开
-
JDK8-HashMap(二)put()以及 resize()方法详解
put( K key, V value) /** * 将指定参数key和指定参数value插入map中,如果key已经存在,那就替换key对应的value * * @param key 指定key * @param value 指定value * @return 如果value被替换,则返回旧的value,否则返回null。当然,可能key对应的value就是null。 */ public V put(K key, V value)原创 2020-06-06 21:43:25 · 278 阅读 · 0 评论 -
JDK8-HashMap(一)get(Object k)
数据结构 在分析HashMap源码之前,有必要了解HashMap的数据结构,否则很难理解下面的内容。 从上图中可以很清楚的看到,HashMap的数据结构是数组+链表+红黑树(红黑树since JDK1.8)。我们常把数组中的每一个节点称为一个桶。当向桶中添加一个键值对时,首先计算键值对中key的hash值,以此确定插入数组中的位置,但是可能存在同一hash值的元素已经被放在数组同一位置了,这种现象称为碰撞,这时按照尾插法(jdk1.7及以前为头插法)的方式添加key-value到同一hash值的元素原创 2020-06-05 22:39:34 · 215 阅读 · 0 评论