java源码学习:1.8
猫耳山大王
不可一日无书,不可气量如鼠
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java1.8 常用集合源码学习:LinkedList
1、apiList 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。此类实现 Deque 接口,为 add、poll 提供先进先出队列操作,以及其他堆栈和双端队列操作。原创 2017-10-28 16:25:26 · 338 阅读 · 0 评论 -
java1.8 常用集合源码学习:PriorityQueue
1、api一个基于优先级堆的无界优先级队列。优先级队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的 Comparator 进行排序,具体取决于所使用的构造方法。优先级队列不允许使用 null 元素。依靠自然顺序的优先级队列还不允许插入不可比较的对象(这样做可能导致 ClassCastException)。此队列的头 是按指定排序方式确定的最小 元素。如果多个元素都是最小值,则头是原创 2017-10-21 14:57:29 · 497 阅读 · 0 评论 -
java1.8 常用集合源码学习:ArrayDeque
1、apiDeque 接口的大小可变数组的实现。数组双端队列没有容量限制;它们可根据需要增加以支持使用。它们不是线程安全的;在没有外部同步时,它们不支持多个线程的并发访问。禁止 null 元素。此类很可能在用作堆栈时快于 Stack,在用作队列时快于 LinkedList。此类的 iterator 方法返回的迭代器是快速失败 的:如果在创建迭代器后的任意时间通过除迭代器本身的原创 2017-10-21 14:57:07 · 434 阅读 · 0 评论 -
java1.8 常用集合源码学习:ArrayList
1、apiList 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector 类,除了此类是不同步的。)size、isEmpty、get、set、iterator 和 listIterator 操作都以固定时间运行。add 操作以分摊的固原创 2017-10-21 14:56:37 · 407 阅读 · 0 评论 -
java1.8 常用集合源码学习:LinkedHashSet
1、api具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。此实现与 HashSet 的不同之外在于,它维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,即按照将元素插入到 set 中的顺序(插入顺序)进行迭代。注意,插入顺序不 受在 set 中重新插入的 元素的影响。(如果在 s.contains(e) 返回 true 后立即调用 s.add(e),则元素 e 会原创 2017-10-21 14:55:20 · 467 阅读 · 0 评论 -
java1.8 常用集合源码学习:LinkedHashMap
1、apiMap 接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现与 HashMap 的不同之处在于,它维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序(插入顺序)。注意,如果在映射中重新插入 键,则插入顺序不受影响。(如果在调用 m.put(k, v) 前 m.containsKey(k) 返回了 true,则调用原创 2017-10-21 14:54:44 · 426 阅读 · 0 评论 -
java1.8 常用集合源码学习:HashSet
1、api此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。此类为基本操作提供了稳定性能,这些基本操作包括 add、remove、contains 和 size,假定哈希函数将这些元素正确地分布在桶中。对此 set 进行迭代所需的时间与 HashSet 实例的原创 2017-10-21 14:52:55 · 358 阅读 · 0 评论 -
java1.8 过时集合源码学习:Hashtable
1、api此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 方法。Hashtable 的实例有两个参数影响其性能:初始容量 和加载因子。容量 是哈希表中桶 的数量,初始容量 就是哈希表创建时的容量。注意,哈希表的状态为 open:在发生“哈希冲原创 2017-10-28 16:27:15 · 553 阅读 · 0 评论 -
java1.8 过时集合源码学习:Vector
1、apiVector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。每个向量会试图通过维护 capacity 和 capacityIncrement 来优化存储管理。capacity 始终至少应与向量的大小相等;这个值通常比后者大些,因为随着将组件添加到向原创 2017-10-28 16:26:39 · 666 阅读 · 0 评论 -
java1.8 常用集合源码学习:TreeSet
1、api基于 TreeMap 的 NavigableSet 实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。此实现为基本操作(add、remove 和 contains)提供受保证的 log(n) 时间开销。注意,如果要正确实现 Set 接口,则 set 维护的顺序(无论是否提供了显式比较器)必原创 2017-10-28 16:26:19 · 536 阅读 · 0 评论 -
java1.8 常用集合源码学习:TreeMap
1、api基于红黑树(Red-Black tree)的 NavigableMap 实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。此实现为 containsKey、get、put 和 remove 操作提供受保证的 log(n) 时间开销。这些算法是 Cormen、Leiserson 和 Rivest 的 In原创 2017-10-28 16:26:00 · 462 阅读 · 0 评论 -
java1.8 常用集合源码学习:HashMap
1、先看api基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代原创 2017-10-09 15:47:51 · 456 阅读 · 0 评论
分享