数据结构
文章平均质量分 55
Daisytheboy
黛西男孩
展开
-
【回炉重造】HashMap源码分析
参考链接:https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/collection/HashMap.mdhttps://thinkwon.blog.csdn.net/article/details/104588551数据结构实现:<=JDK1.7:数组+链表(链表散列)>=JDK1.8:数组+链表+红黑树哈希函数比较:JDK1.7:4次位运算,5次异或运算(9次扰动)static int原创 2020-10-14 20:23:19 · 139 阅读 · 0 评论 -
【数据结构】CopyOnWriteArrayList源码分析
参考链接https://blog.csdn.net/u010002184/article/details/90452918JDK文档中英对照英文:public class CopyOnWriteArrayListextends Objectimplements List, RandomAccess, Cloneable, Serializable.A thread-safe variant of ArrayList in which all mutative operations (add原创 2023-10-08 17:30:13 · 61 阅读 · 1 评论 -
【数据结构】TreeMap源码分析
TreeMap的基本操作 containsKey、get、put 和 remove 的时间复杂度是 log(n)。平衡二叉树:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。继承的类和接口都是老熟人了,就是这个NavigableMap有点陌生,我们就来康康。底层数据结构:红黑树(是一种平衡二叉树,也是一种二叉搜索树)查找、插入、删除复杂度均为log(n)原创 2023-10-08 17:29:59 · 55 阅读 · 1 评论 -
【回炉重造】ArrayList源码分析
容量默认容量:10扩容后的容量:旧容量的的1.5倍(也可能是1.5倍-1,因为新容量=旧容量+旧容量右移一位())底层数据结构Object类型数组复杂度分析get(int index):O(1)add(E e):O(1)add(int index, E element):O(n)remove(int index):O(n)扩容机制新容量为旧容量的1.5倍,或1.5倍-1。由于底层是使用了Object类型数组,所以扩容后这个数组的大小为原来的1.5倍,但是其size取决于你到底添加了多原创 2020-10-14 20:24:35 · 109 阅读 · 0 评论 -
【回炉重造】LinkedList源码分析
底层数据结构Node节点连成的双向链表 private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element; this.next原创 2020-10-14 20:25:10 · 107 阅读 · 0 评论 -
【回炉重造】ConcurrentHashMap源码分析
继承关系继承了AbstractMap抽象类和ConcurrentMap接口线程安全性线程安全的JDK1.7里容器有多把锁,每一把锁锁一段数据(segement数组,加上HashEntry单向队列table)JDK1.8版本:①取消segments字段,直接采用transient volatile HashEntry<K,V>[] table保存数据,采用table数组元素作为锁,从而实现了对每一行数据进行加锁,并发控制使用Synchronized和CAS来操作将原先table数组+原创 2020-10-14 20:25:52 · 246 阅读 · 0 评论 -
【回炉重造】Hashtable源码分析
参考博文:https://blog.csdn.net/dingjianmin/article/details/79774192继承关系继承了Dictionary抽象类参数:大小:count容量:默认11(>=1的任何整数)负载因子:0.75扩容阈值:容量*负载因子(或是两倍的同映射Map的size)数据结构实现:数组(一个Entry类型的Table)Entry<K,V> implements Map.Entry<K,V>线程安全性线程安全插入过程原创 2020-10-14 20:26:32 · 199 阅读 · 0 评论 -
【数据结构】HashSet源码分析
HashSet源码分析原创 2023-07-31 17:23:46 · 160 阅读 · 1 评论