【死磕 Java 集合】— CopyOnWriteArraySet源码分析
作者:彤哥 出处:https://www.cnblogs.com/tong-yuan/ 问题 (1)CopyOnWriteArraySet是用Map实现的吗? (2)CopyOnWriteArraySet是有序的吗? (3)CopyOnWr...
作者:彤哥 出处:https://www.cnblogs.com/tong-yuan/ 问题 (1)CopyOnWriteArraySet是用Map实现的吗? (2)CopyOnWriteArraySet是有序的吗? (3)CopyOnWr...
作者:彤哥 出处:https://www.cnblogs.com/tong-yuan/ 问题 (1)TreeSet真的是使用TreeMap来存储元素的吗? (2)TreeSet是有序的吗? (3)TreeSet和LinkedHashSet有...
作者:彤哥 出处:https://www.cnblogs.com/tong-yuan/ 问题 (1)LinkedHashSet的底层使用什么存储元素? (2)LinkedHashSet与HashSet有什么不同? (3)LinkedHash...
作者:彤哥 出处:https://www.cnblogs.com/tong-yuan/ 问题 (1)集合(Collection)和集合(Set)有什么区别? (2)HashSet怎么保证添加元素不重复? (3)HashSet是否允许null...
作者:彤哥 出处:https://www.cnblogs.com/tong-yuan/ 二叉树的遍历 我们知道二叉查找树的遍历有前序遍历、中序遍历、后序遍历。 (1)前序遍历,先遍历我,再遍历我的左子节点,最后遍历我的右子节点; (2)中序...
作者:彤哥 出处:https://www.cnblogs.com/tong-yuan/ 删除元素 删除元素本身比较简单,就是采用二叉树的删除规则。 (1)如果删除的位置有两个叶子节点,则从其右子树中取最小的元素放到删除的位置,然后把删除位置...
作者:彤哥 出处:https://www.cnblogs.com/tong-yuan/ 插入元素 插入元素,如果元素在树中存在,则替换value;如果元素不存在,则插入到对应的位置,再平衡树。 public V put(K key, V v...
作者:彤哥 出处:https://www.cnblogs.com/tong-yuan/ 简介 TreeMap使用红黑树存储元素,可以保证元素按key值的大小进行遍历。 继承体系 TreeMap实现了Map、SortedMap、Navigab...
作者:彤哥 出处:https://www.cnblogs.com/tong-yuan/ 简介 WeakHashMap是一种弱引用map,内部的key会存储为弱引用,当jvm gc的时候,如果这些key没有强引用存在的话,会被gc回收掉,下一...
作者:彤哥 出处:https://www.cnblogs.com/tong-yuan/ 简介 LinkedHashMap内部维护了一个双向链表,能保证元素按插入的顺序访问,也能以访问顺序访问,可以用来实现LRU缓存策略。 LinkedHas...
作者:彤哥 出处:https://www.cnblogs.com/tong-yuan/ 简介 HashMap采用key/value存储结构,每个key对应唯一的value,查询和修改的速度都很快,能达到O(1)的平均时间复杂度。它是非线程安...
作者:彤哥 出处:https://www.cnblogs.com/tong-yuan/ 简介 CopyOnWriteArrayList是ArrayList的线程安全版本,内部也是通过数组实现,每次对数组的修改都完全拷贝一份新的数组来修改,修...
作者:彤哥 出处:https://www.cnblogs.com/tong-yuan/ 简介 ArrayList是一种以数组实现的List,与数组相比,它具有动态扩展的能力,因此也可称之为动态数组。 继承体系 ArrayList实现了Lis...
作者:彤哥 出处:https://www.cnblogs.com/tong-yuan/ 问题 (1)LinkedList只是一个List吗? (2)LinkedList还有其它什么特性吗? (3)LinkedList为啥经常拿出来跟Arra...