- 博客(10)
- 收藏
- 关注
原创 Java HashMap底层源码解读
3.5、然后通过一个死循环,一个个比较当前索引所有的节点是否与要添加的节点相同,如果有一个比对相同,则跳出循环不添加,如果一个都没有相同,则添加在该链表的最后。3.3、紧接上面,如果当前位置不为空,则 比较当前位置的hash与添加元素的hash是否相同并且比较key是否为同一个 或者通过equals比较是否地址相同。3.2、第二步通过hash值计算出索引,判对当前位置是否为空,为空则直接new一个节点将数据存入节点然后挂载在当前位置。4、如果相同的key,则将其中的value用新的value替换。
2022-12-30 12:18:07
121
原创 Java Map接口特点详见
1、Map与Collection并列存在,用于保存具有映射关系的数据:Key-Value(双列元素).其中防“1”就是key,“吴亦凡”就是value.2、Map中的key和value可以是任何类型的数据,会封装到HashMap$Node 对象中。3、Map中的key不允许重复。重复会替换掉新出现的value。而value可以重复。4、Map的key 和value都可以为null,但是key为null,只能有一个,value为null可以有多个。
2022-12-20 14:11:13
238
原创 Java LinkedHashSet 底层原理详见
1、LinkedHashSet 是HashSet的子类。以下类图可以说明,当然自己可以追进源码看实际的关系。2、LinkedHashSet底层是一个LinkedHashMap,底层维护了一个 table数组 + 双向链表。2.1值得注意的是table 表是Node 类型的,而存入的数据类型却是Entry类型的。这是因为在底层当中,Entry 继承了 Node 类,所以可以这样写。
2022-12-19 13:11:50
537
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人