代码改变世界

随笔档案-2016年10月

jdk源码分析PriorityQueue

2016-10-31 16:17 by v_ZSW, 383 阅读, 收藏,
摘要: 一、结构 PriorityQueue是一个堆,任意节点都是以它为根节点的子树中的最小节点 堆的逻辑结构是完全二叉树状的,存储结构是用数组去存储的,随机访问性好。最小堆的根元素是最小的,最大堆的根元素是最大的 这是一个最小堆的逻辑结构 这是他的存储结构,是用数组来存储的。 可以看到,i下标的数组元素, 阅读全文

jdk源码分析ArrayDeque

2016-10-27 19:53 by v_ZSW, 519 阅读, 收藏,
摘要: ArrayDeque 数组循环队列,这个数据结构设计的挺有意思的。 据说此类很可能在用作堆栈时快于 Stack,在用作队列时快于 LinkedList。 一、容量 1.1默认容量是8=2^3 1.2指定初始化容容量 此方法是给数组分配初始容量,初始容量并不是numElements,而是大于指定长度的 阅读全文

jdk链表笔记

2016-10-26 19:24 by v_ZSW, 371 阅读, 收藏,
摘要: LinkedList LinkedList是双链表,并且有头尾指针 数据结构 他持有头节点和未节点,并且初始的时候,这两个节点都为null 这是节点的结构,有一个数据域和前后指针 功能实现 1.随机访问的优化node(index) 该方法是随机访问的基础实现,用于获取根据下标获取节点,亮点在于,先判 阅读全文

jdk顺序表笔记

2016-10-26 19:17 by v_ZSW, 466 阅读, 收藏,
摘要: 一、AbstractCollection 提供了集合的最大实现 继承该类,必须实现size()和iterator(),因为该类操作集合都是通过iterator 二、fail-fast策略 该策略在集合框架中多次被应用 一种多线程对同一集合操作的保护措施,确保操作目标没有被其他线程操作过,与cas思想 阅读全文