Collection知识体系

作者: 漆先生 | 来源:发表于2022-03-14 23:31 被阅读0次

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

    相关文章

      网友评论

        本文标题:Collection知识体系

        本文链接:https://www.haomeiwen.com/subject/zyhedrtx.html