Java集合框架
文章平均质量分 80
lazyRabbit丶
这个作者很懒,什么都没留下…
展开
-
基于源码的Java集合框架学习⑨ WeakHashMap
类 WeakHashMap<K,V>以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。丢弃某个键时,其条目从映射中有效地移除,因此,该类的行为与其他的 Map 实现有所不同。null 值和 null 键都被...原创 2018-11-21 11:22:13 · 160 阅读 · 0 评论 -
基于源码的Java集合框架学习⑧ LinkedHashMap
类 LinkedHashMap<K,V>继承自HahMap。此实现与 HashMap 的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序(插入顺序)。注意,如果在映射中重新插入键,则插入顺序不受影响。(如果在调用 m.put(k, v) 前 m.containsKey(k) 返回了 true,则调用时会将键...原创 2018-12-08 12:36:52 · 174 阅读 · 0 评论 -
基于源码的Java集合框架学习⑦ HashMap
类 HashMap<K,V>基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。此实现假定哈希函数将元素正确分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代集合视...原创 2018-12-08 12:35:32 · 164 阅读 · 0 评论 -
基于源码的Java集合框架学习⑮ Set接口
接口 Set一个不包含重复元素的 collection。更正式地说,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。正如其名称所暗示的,此接口模仿了数学上的 set 抽象。在所有构造方法以及 add、equals 和 hashCode 方法的协定上,Set 接口还加入了其他规定,这些规定超出了从 Collection 接口所继承的内容...原创 2018-12-03 10:41:30 · 148 阅读 · 0 评论 -
基于源码的Java集合框架学习⑯ HashSet以及TreeSet
类 HashSet此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证集合的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。此类为基本操作提供了稳定性能,这些基本操作包括 add、remove、contains 和 size,假定哈希函数将这些元素正确地分布在桶中。对此集合进行迭代所需的时间与 HashSet 实例的大小(元素的数量)和底层...原创 2018-12-04 11:24:34 · 162 阅读 · 1 评论 -
基于源码的Java集合框架学习⑬ TreeMap
类 TreeMap<K,V>SortedMap 接口的基于红黑树的实现。此类保证了映射按照升序顺序排列关键字,根据使用的构造方法不同,可能会按照键的类的自然顺序 进行排序(参见 Comparable),或者按照创建时所提供的比较器进行排序。此实现为 containsKey、get、put 和 remove 操作提供了保证的 log(n) 时间开销。这些算法是 Cormen、Leis...原创 2018-11-23 12:09:22 · 152 阅读 · 0 评论 -
基于源码的Java集合框架学习⑫ SortedMap接口
接口 SortedMap<K,V>保证按照键的升序排列的映射,可以按照键的自然顺序(参见 Comparable 接口)进行排序,或者通过创建有序映射时提供的比较器进行排序。对有序映射的集合视图(由 entrySet、keySet 和 values 方法返回)进行迭代时,此顺序就会反映出来。要采用此排序,还需要提供一些其他操作(此接口是相似于 SortedSet 接口的映射)。插入有...原创 2018-11-22 11:26:44 · 184 阅读 · 0 评论 -
基于源码的Java集合框架学习⑪ IdentityHashMap
类 IdentityHashMap<K,V>此类利用哈希表实现 Map 接口,比较键(和值)时使用引用相等性代替对象相等性。换句话说,在 IdentityHashMap 中,当且仅当 (k1 == k2) 时,才认为两个键 k1 和 k2 相等(在正常 Map 实现(如 HashMap)中,当且仅当满足下列条件时才认为两个键 k1 和 k2 相等:(k1 == null ? k2 =...原创 2018-11-22 10:40:43 · 166 阅读 · 0 评论 -
基于源码的Java集合框架学习① Iteretor以及List
开始学习下java集合类的源码参考:http://www.cnblogs.com/skywang12345/p/3323085.html JDK1.7中文版API JDK1.7源码接口 Iterator对集合进行迭代的迭代器。迭代器代替了 Java Collections Framework 中的 Enumeration。迭代器与枚举...原创 2018-10-19 09:32:50 · 217 阅读 · 0 评论 -
基于源码的Java集合框架学习② ArrayList
类 ArrayListList 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector 类,除了此类是不同步的。)此实现不是同步的。在多线程情况下使用该类,应该使用 Collections.synchronizedList 方法将该列表“包装”...原创 2018-10-20 11:44:51 · 135 阅读 · 0 评论 -
基于源码的Java集合框架学习③ LinkedList
类 LinkedList<E>List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列 (deque)。此类实现 Queue 接口,为 add、poll 等提...原创 2018-10-24 15:21:36 · 138 阅读 · 0 评论 -
基于源码的Java集合框架学习④ Vector以及Stack
类 VectorVector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。每个向量会试图通过维护 capacity 和 capacityIncrement 来优化存储管理。capacity 始终至少应与向量的大小相等;这个值通常比后者大些,因为随着将组件添...原创 2018-10-26 10:45:34 · 143 阅读 · 0 评论 -
基于源码的Java集合框架学习⑤ List总结
List总结List 是一个接口,它继承于Collection的接口。它代表着有序的队列。AbstractList 是一个抽象类,它继承于AbstractCollection。AbstractList实现List接口中除size()、get(int location)之外的的函数AbstractSequentialList 是一个抽象类,它继承于AbstractList。Abstrac...原创 2018-10-26 13:47:58 · 192 阅读 · 0 评论 -
基于源码的Java集合框架学习⑥ Map接口
接口 Map<K,V>将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射一个值。此接口代替 Dictionary 类,后者完全是一个抽象类,而不是一个接口。Map 接口提供三种collection 视图,允许以键集、值集合或键-值映射关系集的形式查看某个映射的内容。映射的顺序 定义为迭代器在映射的 collection 视图中返回其元素的顺序。某些映射实现可明...原创 2018-11-15 09:44:29 · 179 阅读 · 0 评论 -
基于源码的Java集合框架学习⑩ Hashtable
类 Hashtable此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。为了成功地在哈希表中存储和检索对象,用作键的对象必须实现 hashCode 方法和 equals 方法。Hashtable 的实例有两个参数影响其性能:初始容量 和加载因子。容量 是哈希表中桶 的数量,初始容量 就是哈希表创建时的容量。注意,哈希表的状态为 open:在发生“哈希冲突...原创 2018-11-21 15:00:51 · 167 阅读 · 0 评论 -
基于源码的Java集合框架学习⑭ Map总结
Map概括Map 是“键值对”映射的抽象接口。AbstractMap 实现了Map中的绝大部分函数接口。它减少了“Map的实现类”的重复编码。SortedMap 有序的“键值对”映射接口。NavigableMap 是继承于SortedMap的,支持导航函数的接口。HashMap 是基于“拉链法”实现的散列表。一般用于单线程程序中。Hashtable 也是基于“拉链法”实现的散列表。它一...原创 2018-12-08 13:10:11 · 151 阅读 · 0 评论