HashMap
dong__xue
if else
展开
-
HashMap源码之属性
基于JDK1.8/** * 单继承多实现,继承了他的抽象父类AbstractMap<K,V> * 实现了Map<K,V>为了一些通用操作 * 实现了Cloneable为了复制,这里是浅复制,原值改变复制出来的值也会变 * 实现了Serializable为了持久化 * */public class HashMap<K,V> extends Abs...原创 2019-04-06 21:44:50 · 247 阅读 · 0 评论 -
HashMap源码之put
基于JDK1.8put方法我在编辑器里面格式化了代码,增加了一些{}增加可读性 public V put(K key, V value) { return putVal(hash(key), key, value, false, true); } //put方法用画图的方式更便于理解整个插入过程 final V putVa...原创 2019-04-06 21:50:35 · 103 阅读 · 0 评论 -
HashMap源码之get
基于JDK1.8 //get方法 public V get(Object key) { Node<K,V> e; //根据key的hash值和key寻找Node,如果为null则返回null,如果不为null则返回value return (e = getNode(hash(key), key...原创 2019-04-07 15:43:44 · 226 阅读 · 0 评论 -
手动简单实现HashMap
首先必须明确HashMap的数据结构,网上有很多解释;手动实现HashMap最主要就是表现出来数组加链表的结构,以及可用的put和get方法,体现出hash碰撞时候的数据处理即可。//定义接口public interface MyMap<K, V> { //长度(这里指的是数组的长度) int size(); //是否为空 boolean isEmpty(); //...原创 2019-05-13 22:13:12 · 466 阅读 · 0 评论