HashMap
我的风墙呢
喜欢漂亮的代码,喜欢算法,喜欢学习
展开
-
jdk源码——linkedList
从源码的定义中,我们可以看出linkedList是实现list接口和deque接口的双端链表 public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable ...原创 2018-09-25 15:29:19 · 108 阅读 · 0 评论 -
jdk源码——ArrayList
ArrayList的初始化,我们可以指定大小也可以不指定大小,默认大小是10, public ArrayList(int initialCapacity) { super(); if (initialCapacity < 0) throw new IllegalArgumentException("Illegal Capacity:...原创 2018-09-17 15:24:25 · 101 阅读 · 0 评论 -
jdk源码——HashMap
JDK1.7 从源码上看,HashMap 实现了Map接口 cloneable接口,和序列化接口 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { HashMap的默认初始容量为16 stat...原创 2018-09-25 21:12:22 · 168 阅读 · 0 评论 -
jdk源码——hashmap的1.8与1.7比较
1.8链表的定义基本上与1.7相同,但是类名改为Node,但是node实现了Map.Entry接口,实质是一样的 static class Node<K,V> implements Map.Entry<K,V> { 1.8的hash值的算法更加直观一点,就是key的hashcode与无符号右移16位的hashcode异或,然后返回。这是为了当length比较小的时...原创 2018-09-27 16:10:22 · 792 阅读 · 2 评论 -
jdk源码——ConcurrentHashMap——jdk1.7
首先做个分析: hashMap,hashTable,ConcurrentHashMap,这三者之间的区别,HashMap是线程不安全的,在多线程的环境下,hashMap的put方法可能引起死循环,于是为了线程安全,出现了hashTable,hashTable解决多线程安全的问题是简单粗暴的加synchronized关键字,但是这种方法引起效率低下,于是ConcurrentHashMap出现了,...原创 2018-09-28 14:13:51 · 284 阅读 · 0 评论 -
jdk源码——LinkedHashMap——jdk1.7
LinkedHashMap的定义 public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> { private transient Entry<K,V> header;//头结点 private final boolean ...原创 2018-09-28 17:03:49 · 625 阅读 · 0 评论