Collection知识体系

原文链接: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)顺序。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容