![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java集合源码
文章平均质量分 92
想当厨子的程序媛
前期追深度,否则会华而不实,后期追广度,否则会坐井观天;
展开
-
Java集合(4)——Collection源码和AbstractCollection源码解析
Collection官方文档描述: All general-purpose Collection implementation classes (which typically implement Collection indirectly through one of its subinterfaces) should provide two “standard” constru...原创 2018-02-09 12:24:44 · 289 阅读 · 0 评论 -
Java集合(12)——TreeSet源码解析
类图官方文档TreeSet类实现了NavigableSet接口,因此它是有顺序的Set类,可以指定一个顺序,在元素存入时,按照指定的顺序排序其中排序的顺序有两种方式:自然排序和比较器排序自然排序 TreeSet类的add()方法中会把存入的对象提升为Comparable类型调用对象的compareTo()方法和集合中的对象比较根据compareTo()方法返回的结果进行...原创 2018-03-24 16:08:29 · 411 阅读 · 0 评论 -
Java集合(13)——Queue与Deque源码解析
Queue类图Queue官方文档Queue成员方法Deque类图Deque官方文档Deque成员方法(1)–(14)是Deque自己的方法 (15)–(20)是Queue中的方法 (21)–(22)是Stack中的方法 (23)–(27)是Collection中的方法...原创 2018-03-24 16:35:06 · 212 阅读 · 0 评论 -
Java集合(14)——AbstractQueue源码解析
类图官方文档(1)该类的add()、remove()和element()方法依赖于offer()、poll()和peek()方法,因此使用该类的类需要实现Queue接口的于offer()、poll()和peek()方法 (2)当队列中元素为null时,抛出异常,而不是返回false或null (3)每一个实现Queue接口并继承AbstractQueue类的类必须定义offer...原创 2018-03-25 11:14:35 · 322 阅读 · 0 评论 -
Java集合(7)——LinkedList源码解析
类图官方文档LinkedList成员变量LinkedList构造函数LinkedList内部类LinkedList成员方法 LinkedList链表尽管数组在连续的存储位置上存放对象的引用,但链表却将每个对象存放在独立的结点中。每个结点还存放着序列中喜爱个结点的引用。在Java程序设计语言中,所有链表实际上都是双向链...原创 2018-03-21 13:28:43 · 242 阅读 · 0 评论 -
Java集合(20)——TreeMap源码解析(一)
TreeMap使用红黑树来存储节点信息,因此TreeMap分为三篇文章,这篇文章主要讲解红黑树的插入,TreeMap源码解析(二)主要讲解红黑树的删除,TreeMap源码解析(三)中主要讲解TreeMap的源码红黑树概念及其基本性质红黑树概念红黑树是一种二叉查找树,它的每个节点上增加一个存储位用来表示节点的颜色信息,红黑树中节点的颜色只包含两种,一种是红色red,另一种是黑...原创 2018-04-15 14:14:49 · 219 阅读 · 0 评论 -
Java集合(15)——PriorityQueue源码解析
类图官方文档(1)优先队列PriorityQueue具有小根堆性质,该类在逻辑上是使用堆实现的,即完全二叉树;该类在存储内存时,是将其转换为数组存储的 (2)完全二叉树是指:叶节点只能出现在最下层和次下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。下图显示一棵完全二叉树和一棵非完全二叉树 (3)PriorityQueue总是先输出根节点的值,然后调整树使...原创 2018-04-12 16:30:03 · 300 阅读 · 0 评论 -
Java集合(17)——HashMap源码解析
类图官方文档 (1) Hash table based implementation of the Map interface. This implementation provides all of the optional map operations, and permits null values and the null key. (The HashMap cla...原创 2018-04-13 13:00:10 · 314 阅读 · 0 评论 -
Java集合(18)——HashTable源码解析
类图官方文档 (1) This class implements a hash table, which maps keys to values. Any non-null object can be used as a key or as a value. (2) To successfully store and retrieve objects from a h...原创 2018-04-14 10:24:53 · 237 阅读 · 0 评论 -
Java集合(11)——EnumSet源码解析
类图官方文档(1)EnumSet是一个专为枚举类型设计的类,EnumSet中的所有元素都必须是指定枚举类型的枚举值 (2)EnumSet在内部以位向量的形式进行存储,对于一些批量操作,如containsAll and retainAll,如果其参数是EnumSet类型,则该批量操作的执行速度会很快 (3)通过使用iterator迭代器,可以实现集合中元素的存储顺序与插入元素时的...原创 2018-03-24 14:06:49 · 247 阅读 · 0 评论 -
Java集合(10)——HashSet源码解析
类图官方文档成员变量成员方法成员方法源码解析1. public HashSet()方法 public HashSet() { map = new HashMap<>(); }源码解析:功能:无参构造函数源码思路:构造一个新的,空的HashMap实例,它有默认的初始化容量,容量为16,负载数为0.75...原创 2018-03-24 11:13:42 · 299 阅读 · 0 评论 -
java集合(9)——AbstractSet源码解析
类图官方文档AbstractSet成员方法1. protected AbstractSet()构造方法 protected AbstractSet() { }2. public boolean equals(Object o)方法 public boolean equals(Object o) { if...原创 2018-03-22 15:40:17 · 430 阅读 · 0 评论 -
Java集合(16)——Map源码、AbstractMap源码、SortedMap源码、NevigatableMap源码解析
类图小圆圈:表示接口。 与Map集合有关的有4个接口:Map接口、SortedMap接口、NevigatableMap接口和DIirectionary接口粉色方框:表示抽象类AbstractMap肉色方框:表示具体类。Map集合下包含4个类:TreeMap类、HashMap类、WeakHashMap类和HashTable类类图的详细介绍Map接口: 用于保存具有映...原创 2018-02-07 21:21:19 · 652 阅读 · 0 评论 -
java集合(10)——HashSet、LinkedHashSet和TreeSet辨析
Set接口是Collection的子接口,Set要点:不允许包含相同的元素使用equals方法判断对象是否相同一个不包含重复元素的 collection。更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素HashSet类该类实现的接口:Serializable, Cloneable, Iterable,...原创 2018-01-29 18:27:27 · 275 阅读 · 2 评论 -
Java集合(1)——Iterable接口和Iterator接口
集合类图Iterable 是Java.lang包下的接口Iterabtor是java.util包下的接口Iterable接口包装了Iterator接口java.lang.Iterable接口官方文档介绍: Implementing this interface allows an object to be the target of the “for-eac...原创 2018-02-08 15:40:15 · 480 阅读 · 0 评论 -
java集合(2)—— ConcurrentModificationException异常原因和解决方法
以下的内容摘抄自:http://www.cnblogs.com/dolphin0520/p/3933551.htmlConcurrentModificationException异常出现的原因使用集合的时候,通常希望遍历到需要修改的集合后,直接利用集合对象的remove方法直接删除或者修改对应的值。但是!这种方法是不可行的,调试过的小伙伴儿应该知道,这样做会抛出一个Concurrent...原创 2018-01-30 11:17:28 · 632 阅读 · 0 评论 -
Java集合(3)——ListIterator接口源码 & ListIterator接口与Iterator接口辨析
ListIterator接口官方文档描述: An iterator for lists that allows the programmer to traverse the list in either direction, modify the list during iteration, and obtain the iterator’s current position in...原创 2018-02-08 17:47:40 · 412 阅读 · 0 评论 -
Java集合(5)——List接口与AbstractList抽象类源码解析
List接口List是一个有序、可以重复,可以有null元素的集合类图官方文档List成员方法其中“有序”,指的是存储的时候按照元素的添加顺序进行存储和获取。有序的集合(也成为序列)。该接口的开发人员可以精确的控制列表中每个元素的插入位置。开发人员可以通过索引访问元素,并搜索列表中的元素与Set不同的是,列表通常允许重复的元素。更正式的说,列表通...原创 2018-02-25 16:26:48 · 1654 阅读 · 0 评论 -
Java集合(6)——AbstractSequentialList源码解析
AbstractSequentialList抽象类类图官方文档AbstractSequentialList抽象成员方法AbstractSequentialList构造函数AbstractSequentialList成员方法1. public E get(int index)方法 public E get(int in...原创 2018-02-25 17:59:57 · 225 阅读 · 0 评论 -
Java集合(8)——ArrayList源码解析
类图官方文档ArrayList成员变量ArrayList构造函数ArrayList内部类ArrayList成员方法 ArrayList成员方法源码解析1. public ArrayList(int initialCapacity)带参构造方法 public ArrayList(int initialCa...原创 2018-03-22 13:32:02 · 620 阅读 · 0 评论 -
Java集合(19)——SortedMap源码解析
类图官方文档该类是一个有序的Map集合,所有插入的元素会按照键的自然排序进行插入操作,或者按照所提供的比较器的比较方式进行插入。该类的很多方法都依赖于该有序的插入方式所有插入的元素类型都需要实现Comparable ()接口,插入到集合中的元素必须是可以与集合中的其他元素可以比较的类型,否则会抛出ClassCastException异常该集合提供了4种类型的构造方法(1...原创 2018-04-14 11:12:42 · 544 阅读 · 0 评论