Java
分享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 · 148 阅读 · 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 · 121 阅读 · 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 · 138 阅读 · 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 · 104 阅读 · 2 评论