Collection
List
Arraylist
:
Object
数组
Vector
:
Object
数组
LinkedList
: 双向循环链表
Set
HashSet
(无序,唯一):基于
HashMap
实现的,底层采用
HashMap
来保存元素
LinkedHashSet
:
LinkedHashSet
继承与
HashSet
,并且其内部是通过
LinkedHashMap
来实现
的。有点类似于我们之前说的
LinkedHashMap
其内部是基 于
Hashmap
实现一样,不过还是有一
点点区别的。
TreeSet
(有序,唯一): 红黑树
(
自平衡的排序二叉树。
) Map
HashMap
:
JDK1.8
之前
HashMap
由数组
+
链表组成的,数组是
HashMap
的主 体,链表则是主要
为了解决哈希冲突而存在的(
“
拉链法
”
解决冲突)
.JDK1.8
以后
在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为
8
)时,将链表转 化为红黑树,
以减少搜索时间
LinkedHashMap
:
LinkedHashMap
继承自
HashMap
,所以它的底层仍然是 基于拉链式散列结
构即由数组和链表或红黑树组成。另外,
LinkedHashMap
在上面 结构的基础上,增加了一条双向
链表,使得上面的结构可以保持键值对的插入顺序。 同时通过对链表进行相应的操作,实现了访问
顺序相关逻辑。
HashTable
: 数组
+
链表组成的,数组是
HashMap
的主体,链表则是主要为 了解决哈希冲突而存
在的
TreeMap
: 红黑树(自平衡的排序二叉树)