![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java集合框架
分析JDK集合框架源码文章
nzsdyun123
这个作者很懒,什么都没留下…
展开
-
TreeMap源码解析(JDK1.7)
概念 TreeMap是键值对按键有序,为了实现Key有序,要求Key实现Comparable接口或者构造函数传入Comparator来保证Key的顺序。 相对于HashMap实现Map接口,TreeMap还实现了SortedMap和NavigationMap进一步提供总体顺序Map方法和扩展一些方法lowerXX,floorXX,ceilingXX,higherXX等导航方法来方便TreeMap操作。 源码解析 TreeMap底层原理实现是红黑树。首先红黑树一颗二叉搜索树或者叫二叉排序树,也就是其左子树,父原创 2021-03-25 18:20:42 · 129 阅读 · 0 评论 -
HashSet源码解析
概念 HashSet基于Hash表的Set实现集合,Set定义了无重复且没有顺序的容器接口。 源码解析 HashSet是基于HashMap的一个实例进行实现,其不保证Set的迭代顺序,因此其源码实现相对简单。以下源码只涉及一些核心逻辑。 字段属性 // HashMap实例 private transient HashMap<E,Object> map; // 虚拟值关联map实例的value值 private static final Object PRESENT = new Ob原创 2021-03-25 18:19:02 · 102 阅读 · 0 评论 -
HashMap源码解析(JDK1.7)
概念 HashMap是基于Hash表的Map实现,提供所有可选的键值映射操作。底层实现是数组单链表实现,数组中的每个元素是一个链表节点,通过链表来处理hash冲突。 源码解析 源码解析只涉及到一些核心功能实现分析,不会对HashMap的所有源码进行展开。 字段属性 // 默认HashMap容量 static final int DEFAULT_INITIAL_CAPACITY = 16; // 最大HashMap容量 static final int MAXIMUM_CAPA原创 2021-03-18 11:47:08 · 120 阅读 · 0 评论 -
LinkedList源码解析
概念 基于双端链表的List,Deque接口实现。具有链表的高效添加、删除,但查找性能比较低下,需要从头到尾或者从尾到头遍历链表。 源码解析 源码解析只涉及到一些核心功能实现分析,不会对LinkedList的所有源码进行展开。 字段属性 // List容量大小 transient int size = 0; // 首节点 transient Node<E> first; // 尾节点 transient Node<E> last; 双链表节点结构 使用内部类Node来定义链表的节点原创 2021-03-17 18:25:36 · 91 阅读 · 2 评论