原文链接:https://www.pdai.tech/md/java/collection/java-collection-all.html#linkedlist
一、类关系图
image.png二、Collection
容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对的映射表。
1.Collection
Set:
不包含重复元素。
检查元素效率低下,删除和插入的效率高,插入和删除不会引起元素的位置变化。
-
TreeSet
基于红黑树实现,支持有序性操作, -
HashSet
基于哈希表实现,支持快速查找,但不支持有序性操作 -
LinkedHashSet
具有 HashSet 的查找效率,且内部使用双向链表维护元素的插入顺序
List
允许重复项的有序集合
和数组类似,List可以动态增长,查找元素的效率较高,插入元素和删除元素效率低,因为会引起其他元素位置发生变化。
-
ArrayList
基于动态数组实现,支持随机访问。 -
Vector
和 ArrayList 类似,但它是线程安全的。有个子类是Stack,现在不推荐使用了,推荐使用ArrayDeque -
LinkedList
基于双向链表实现,只能顺序访问,但是可以快速地在链表中间插入和删除元素。不仅如此,LinkedList 还可以用作栈、队列和双向队列。
Queue
-
LinkedList
可以用它来实现双向队列。 -
PriorityQueue
基于堆结构实现,可以用它来实现优先队列
2.Map
-
TreeMap
基于红黑树实现。 -
HashMap
基于哈希表实现。 -
HashTable
和 HashMap 类似,但它是线程安全的。可以用ConcurrentHashMap替换,引入分段锁,效率更高,也是线程安全。 -
LikedHashMap
使用双向链表来维护元素的顺序,顺序为插入顺序或者最近最少使用(LRU)顺序。
网友评论