
Java集合框架
MRZvc
静坐常思己过,闲谈莫论人非。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ArrayList源码分析解读
概述ArrayList是Java一个很常用的集合类,它相当于一个动态数组,内部的数组大小可以根据元素实际情况自动分配,也可以自己分配大小。在使用ArrayList的时候,应注意ArrayList并不是线程安全的,如果需要多线程并发操作应当使用CopyOnWriteArrayList(读远大于写的情况),或者使用Collections工具类的synchronizedList方法将其包装。下...原创 2019-08-20 10:20:54 · 136 阅读 · 0 评论 -
HashMap源码分析解读
HashMapHashMap概述HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。public class HashMap<K,V> extends Abst...原创 2019-08-30 15:07:20 · 114 阅读 · 0 评论 -
红黑树源码分析解读
红黑树的介绍红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树。红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。除了具备该特性之外,红黑树还包括许多额外的信息。红黑树的每个节点上都有存储位表示节点的颜色,颜色是红(Red)或黑(Black)。红黑树的特性:(1) 每个节点...原创 2019-08-30 15:07:39 · 235 阅读 · 0 评论 -
TreeMap源码分析解读
基础结构 static final class Entry<K,V> implements Map.Entry<K,V> { K key; V value; Entry<K,V> left; // 左孩子 Entry<K,V> right; // 右孩子 ...原创 2019-08-30 15:07:56 · 117 阅读 · 0 评论 -
LinkedHashMap源码解读
LinkedHashMapLinkedHashMap简介public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>LinkedHashMap是HashMap的子类,与HashMap有着同样的存储结构,但它加入了一个双向链表的头结点,将所有put到LinkedH...原创 2019-08-20 17:32:04 · 122 阅读 · 0 评论 -
LinkedList源码分析解读
基础结构 private static class Node<E> { E item; // 当前值 Node<E> next; // 前置节点 Node<E> prev; // 后置节点 Node(Node<E> prev, E element, Node<E&...原创 2019-08-30 15:07:47 · 125 阅读 · 0 评论 -
Hashtable源码分析详解
HashtableHashtable简介和HashMap一样,Hashtable也是一个散列表,它存储的内容是键值对(key-value)映射。Hashtable继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。Hashtable的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为null(为null时将抛...原创 2019-08-30 11:02:12 · 127 阅读 · 0 评论 -
Vector源码分析详解
public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ protected Object[] elementData; protected int ele...原创 2019-08-30 15:07:05 · 117 阅读 · 0 评论 -
LinkedHashSet源码分析解读
LinkedHashSetLinkedHashSet概述LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可为插入顺序或是访问顺序。注意,此实现不是线程安全的。LinkedHashSet的实现public class Linke...原创 2019-08-20 12:42:43 · 130 阅读 · 0 评论 -
TreeSet源码分析详解
TreeSetTreeSet简介java.lang.Object ↳ java.util.AbstractCollection<E> ↳ java.util.AbstractSet<E> ↳ java.util.TreeSet<E>public class TreeSet...原创 2019-08-20 10:42:21 · 151 阅读 · 0 评论 -
HashSet源码分析解读
HashSetHashSet概述HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。HashSet的实现public class HashSet<E> extends AbstractSet<E> implements Set<E>, ...原创 2019-08-30 15:07:28 · 107 阅读 · 0 评论 -
二叉树的深搜和广搜
二叉树是计算机中一个重要的数据结构,在这里主要谈一下二叉树的深度优先搜索(DFS)和广度优先搜索(BFS)。所谓DFS,就是沿着树的深度一直往下,一直到达一个叶子节点,然后再返回遍历剩余的节点。根据树的性质,树结构不存在环,因此遍历的时候不需要标记。如果在遍历一个图的时候,因为图中有环的存在,因此需要标记访问过的节点,以防止程序进入死循环。言归正传,树的DFS有三种方式,分别为:前序遍历,中序...原创 2019-08-30 10:31:42 · 892 阅读 · 0 评论