java容器
hxpandjava
无论多么亮丽的人生,最终都归结为内心的朴素
展开
-
HashMap
HashMap的数据结构 HashMap的底层数据结构为数组+链表,数组的元素类型为Entry,Entry本身是一个链表结构。在HashMap中可以看到如下的实例变量: transient Entry[] table; 该变量即定义了HashMap的数据存储。 HashMap的数据容量 HashMap有一个经常...2011-08-03 11:51:41 · 54 阅读 · 0 评论 -
LinkedHashMap
LinkedHashMap定义 LinkedHashMap继承于HashMap,本身就是一个HashMap,只是增加了一个双向链表按顺序保存KEY。 ...... private transient Entry<K,V> header; private final boolean accessOrder; ...... 属性acce...2011-08-08 10:41:51 · 61 阅读 · 0 评论 -
TreeMap
TreeMap定义 与LinkedHashMap不同,TreeMap不是继承于HashMap,而是继承于AbstractMap,归根到底,TreeMap实现的不是hash算法,而是二叉树算法;底层的数据存储也不是数组,而是链表实现的二叉树。二叉树数据结构决定了该map是一个按key进行排序排序的map。定义如下: ...... private final Comparator<? ...2011-08-08 11:46:46 · 64 阅读 · 0 评论 -
HashSet与LinkedHashSet
HashSet定义 HashSet是在HashMap基础上实现的元素不重复的集合容器,定义如下: ...... private transient HashMap<E,Object> map; ...... 其底层数据结构就是HashMap,数据以KEY的形式保存与map中。HashSet有如下三个构造函数: public HashSet(int initialCapa...2011-08-08 17:19:54 · 105 阅读 · 0 评论 -
LinkedList
LinkedList定义 LinkedList是对List的一种链表实现,定义如下: ...... private transient Entry<E> header = new Entry<E>(null, null, null); ...... header是一个非常普通双向链表,以下是双向链表节点的部分属性: E element; Entry<...2011-08-08 17:47:08 · 101 阅读 · 0 评论 -
ArrayList
ArrayList定义 顾名思义,ArrayList是对List的一种数组实现,部分代码如下: ...... private transient Object[] elementData; ...... elementData即为ArrayList的底层数据存储。 ArrayList的扩容 ArrayList的默认容量是10,如下: public ArrayList...2011-08-08 17:55:49 · 197 阅读 · 0 评论