1. 5.4 Hashtablehistorical

    1. 是什么 线程安全的hashmap 2. 如何使用 3. 原理分析 3.1. uml 可克隆,可序列化,实现了Map接口 3.2. 构造方法 使用链地址法(单链表)解决Hash冲突 初始化容量为11,默认的加载因子为0.75 3.3. put方法 3.3.1. 使用synchronized加锁

  2. 5.11 LinkedHashMaphistorical

    1. 是什么 - 使用双向链表+HashMap(数组+链表+红黑树)实现 - 相比于HashMap保存了顺序 - 迭代时输出的顺序是 - 按照插入节点的顺序来输出 - 也可以指定成按照访问的顺序输出(LRU) 2. 使用 - 按照插入节点的顺序来输出 - 按照访问的顺序输出 3. 实现 3.1. u

  3. 5.16 Map比较historical

    1. HashMap1.7 vs HashMap1.8 HashMap1.7 HashMap1.8 ---------------------------- ---------- --------------- 数据结构 数组+链表 数组+链表+红黑树 冲突时链表中是头插法还是尾插法 头插 尾插 -

  4. 5.20 SynchronizedMaphistorical

    就是sychronized块+map的操作,参考: List:SynchronizedList

  5. 5.24 TreeMaphistorical

    1. 是什么 基于红黑树(平衡二叉搜索树)实现,效率为O(logN)的key-value对。 迭代时输出的顺序是 - 按照key的自然顺序来遍历的 - 也可以使用自定义的Comparator进行排序 2. 使用 3. 源码分析 3.1. uml 3.2. 构造方法 3.3. put 3.4. get

  6. 5.27 JDK1.7historical

    1. 问题 1.1. 手写HashMap 1.1.1. Entry 1.1.2. put操作 1.1.3. get操作 1.1.4. remove操作 1.2. 为什么构造函数中需要把capacity转成2的power 跟indexFor计算数组下标有关 不是计算Hash后对table.length

  7. 5.28 JDK1.8historical

    1. 是什么 实现O(1)存取效率的key-value对数据结构 2. 如何使用 3. 原理分析 3.1. uml 可克隆,可序列化,实现了Map 3.2. 构造方法 3.3. put方法 总体伪算法如下: - 计算key的hash值 - 使用hash值&数组长度1计算改数据存放的位置i - tab