![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
容器
zy19982004
这个作者很懒,什么都没留下…
展开
-
容器学习十一:Queue & Stack
一.Queue类图 整个Queue结构如上图,单双端+Blocking与否组成了四个接口。 Queue:队列。 Deque:double ended queue双端队列。 BlockingQueue:阻塞队列。 BlockingDeque:阻塞双端队列。 二.Stack类 栈的实现。 public class Stack<E> ...2012-10-19 13:31:53 · 89 阅读 · 0 评论 -
容器学习九:Comparable & Comparator
一.前言 本系列文章以研究源码为主,源码原理和设计次之,应用最弱。因为现在能读懂源码,要搞清楚设计和原理尚需火候,至于应用网上大把大把的有,读懂了源码应用也就是小事了。 二. Comparable & Comparator package java.lang; public interface Comparable<T> { pu...2012-10-15 11:26:57 · 124 阅读 · 0 评论 -
容器学习八:LinkedList源码分析
一.概述 LinkedList继承Deque,所以LinkedList的插入删除操作遵循先进性出FIFO。 LinkedList继承Deque,所以Linkedist实现了Deque的操作,比喻offer peek pollfirst/last等操作。其实这些操作也就是建立在getFirst getLast addFirst addLast removeFirst removeLast...原创 2012-09-01 12:22:52 · 89 阅读 · 0 评论 -
容器学习七:ArrayList源码分析
一.成员变量 // 在AbstractList里面定义的 protected transient int modCount = 0; // 内部用数组实现 private transient Object[] elementData; private int size; 二.构造函数 // 自己在写代码的时候为了严谨,最好是先判断参数抛出Illeg...2012-08-31 17:00:33 · 75 阅读 · 0 评论 -
容器学习六:HashSet & LinkedHashSet & TreeSet源码分析
一.概述 Set是通过Map来支持的,Set接口里的所有方法,都委托给内部的Map去实现。 二.HashSet源码 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable ...原创 2012-08-30 22:38:35 · 61 阅读 · 0 评论 -
容器学习五:TreeMap源码分析
一.TreeMap成员变量 //Comparator比较器接口,接口里面只有两个方法int compare(T o1, T o2);boolean equals(Object obj); private final Comparator<? super K> comparator; //根节点 private transient Entr...2012-08-30 17:45:20 · 81 阅读 · 0 评论 -
容器学习四:TreeMap源码分析-排序二叉树和红黑树
一.排序二叉树 排序二叉树是一种特殊结构的二叉树,可以非常方便地对树中所有节点进行排序和检索。 排序二叉树要么是一棵空二叉树,要么是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值。 若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值。 二.排序二叉树添加节点 以根节点当前...原创 2012-08-30 14:55:15 · 100 阅读 · 0 评论 -
容器学习三:LinkedHashMap源码分析
一.LinkedHashMap的存储结构 LinkedHashMap是继承HashMap,也就继承了HashMap的结构,也就是图中的结构2,在下文中我用"Entry数组+next链表"来描述。而LinkedHashMap有其自己的变量header,也就是图中的结构1,下文中我用"header链表"来描述。 结构1中的Entry和结构2中的Entry本是同一个,结构1中应该就只有一个...2012-08-26 21:50:31 · 76 阅读 · 0 评论 -
容器学习二:Hashtable源码分析
一.前言 HashMap和Hashtable大部分算法是相同的,容器学习一:HashMap源码分析 对HashMap源码进行了分析,可以先阅读它。 相同的算法部分不再分析,本文主要考虑Hashtable和HashMap的不同之处。 二.Hashtable成员变量 private transient Entry[] table; // 等同于HashMap...原创 2012-08-25 13:43:14 · 88 阅读 · 0 评论 -
容器学习一:HashMap源码分析
一.HashMap的存储结构 二.HashMap成员变量 //默认初始容量,总为2的次方值 static final int DEFAULT_INITIAL_CAPACITY = 16; //最大容量 static final int MAXIMUM_CAPACITY = 1 << 30; //默认加载因子 ...原创 2012-08-24 16:09:33 · 95 阅读 · 0 评论 -
容器学习
一.博客传送门 容器学习一:HashMap源码分析 容器学习二:Hashtable源码分析 容器学习三:LinkedHashMap源码分析 容器学习四:TreeMap源码分析-排序二叉树和红黑树 容器学习五:TreeMap源码分析 容器学习六:HashSet & LinkedHashSet & TreeSet源码分析...2012-08-24 15:17:51 · 83 阅读 · 0 评论 -
容器学习十:Vector & ArrayList & LinkedList
一.前言 以前对Vector这对象很陌生,用的少,对象的名字(Vector矢量,向量)也让人摸不着头脑,以为是什么新东西... 前文已经学习了ArrayList和LinkedList的源码,原本打算写个Vector源码分析的,但看了一下,Vector和ArrayList一样啊,于是作罢。本文就简单的对比下这三种List。 二.Vector & ArrayList V...2012-10-15 14:57:10 · 85 阅读 · 0 评论