
Java集合框架详解
文章平均质量分 81
从结构到原理再到源码,详细深入的理解Java框架
zhongrui_fzr
公众号:step in 机器学习
github主页:https://zrfan.github.io/
展开
-
JDK1.8源码中的设计模式
1. 迭代器与组合模式(Iterator)1.1 Collection.iterator()集合(Collection)指的是一群对象,其存储方式可以是各式各样的数据结构。 如何能让客户遍历你的对象而又无法窥视你存储对象的方式——利用迭代器(iterator)java.util.Iterator来封装“遍历集合内的每个对象的过程”。//忽略集合实现方式(列表、数组、散列表)封装对象遍历publi原创 2016-05-17 21:37:33 · 5094 阅读 · 1 评论 -
JDK1.8源码中的编程习惯
1.如果指定了toString()返回值的格式,则应该提供一个对应的静态工厂方法1.1BigInteger.toString()/* * Returns the String representation of this BigInteger in the * given radix.* / public String toString(int radix) {/** * Returns th原创 2016-05-16 22:18:04 · 4866 阅读 · 1 评论 -
从源码理解WeakHashMap.java
package java.util;import java.lang.ref.WeakReference;import java.lang.ref.ReferenceQueue;import java.util.concurrent.ThreadLocalRandom;import java.util.function.BiConsumer;import java.util.func原创 2016-05-15 22:05:19 · 1001 阅读 · 1 评论 -
JDK1.8源码学习之Map.java
package java.util;import java.util.function.BiConsumer;import java.util.function.BiFunction;import java.util.function.Function;import java.io.Serializable;/** * 一个可以将关键字映射为值的对象; * 一个map可以包含重复原创 2016-04-21 14:12:12 · 3250 阅读 · 1 评论 -
从源码理解HashMap
package java.util;import java.io.IOException;import java.io.InvalidObjectException;import java.io.Serializable;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import ja原创 2016-04-25 17:47:53 · 3005 阅读 · 3 评论 -
从源码理解TreeMap.java
从源码理解TreeMap.javapackage java.util;import java.io.Serializable;import java.util.function.BiConsumer;import java.util.function.BiFunction;import java.util.function.Consumer;/** * 基于红黑树的Naviga原创 2016-04-29 21:03:56 · 2466 阅读 · 2 评论 -
从源码理解ArrayList.java
从源码理解ArrayList.javapackage java.util;import java.util.function.Consumer;import java.util.function.Predicate;import java.util.function.UnaryOperator;/** * 可变数组实现了List接口,实现了所有列表操作,允许空值null。还提供了原创 2016-05-04 16:07:39 · 2136 阅读 · 0 评论 -
从源码理解LinkedHashMap.java
package java.util;import java.util.function.Consumer;import java.util.function.BiConsumer;import java.util.function.BiFunction;import java.io.IOException;import HashMap.Node;/** * 哈希表和链表实现Ma原创 2016-05-04 19:43:12 · 2394 阅读 · 0 评论 -
从源码理解LinkedList.java
package java.util;import java.util.function.Consumer;/** * List和Deque接口的双向链表实现,实现了所有可选接口,允许空值null * 支持所有双向链表应该支持的操作,深入链表的操作都是从链表头遍历到链表尾 * 该实现不支持并发。多线程访问,至少一个线程修改列表结构时,需要外部同步,如: * List list = C原创 2016-05-05 21:33:38 · 1747 阅读 · 0 评论 -
从源码理解HashSet.java
package java.util;import java.io.InvalidObjectException;/** * HashSet实现了Set接口,背后由一个哈希表支持(事实上是一个HashMap实例)。 * 不保证元素迭代顺序,更不保证顺序不会随时间变化,允许空值null * HashSet提供常数时间的基本操作add,remove,contains和size,假设哈希函数原创 2016-05-07 11:04:08 · 1196 阅读 · 0 评论 -
从源码理解Stack.java
package java.util;/** * Stack类表示了后进先出(LIFO)的一个容器对象。Stack继承自Vector并扩展了五个操作,使得Vector可以被看作是一个Stack。 * 常用的push和pop,以及获取栈顶元素的peek,测试栈是否为空的empty,一个搜索操作search并返回其与栈顶的距离 * 第一次创建的时候,栈中没有元素 * 更丰富更兼容的LIFO操原创 2016-05-08 12:11:22 · 795 阅读 · 0 评论 -
从源码理解Hashtable.java
package java.util;import java.io.*;import java.util.concurrent.ThreadLocalRandom;import java.util.function.BiConsumer;import java.util.function.Function;import java.util.function.BiFunction;/*原创 2016-05-11 20:11:38 · 1146 阅读 · 5 评论