当前位置: 首页>后端>正文

Collection知识体系

原文链接:https://www.pdai.tech/md/java/collection/java-collection-all.html#linkedlist

一、类关系图

Collection知识体系,第1张

二、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)顺序。


https://www.xamrdz.com/backend/3s51920859.html

相关文章: