Java常见的容器

tim-qtp...大约 2 分钟Java基础

  1. Collection(集合):用于存储单个对象的集合。
  2. Map(映射):用于存储键值对的集合。

1. Collection(集合)

Collection 是存储单个对象的容器,分为以下几种主要类型:

List(列表)

  • 特点:有序、可重复。
  • 常见实现类
    • ArrayList:基于动态数组实现,查询快,增删慢。
    • LinkedList:基于双向链表实现,增删快,查询慢。
    • Vector:线程安全的动态数组,性能较差,已逐渐被 ArrayList 取代。

Set(集合)

  • 特点:无序、不可重复。
  • 常见实现类
    • HashSet:基于哈希表实现,查询速度快,元素无序。
    • LinkedHashSet:基于哈希表和链表实现,元素按插入顺序排序。
    • TreeSet:基于红黑树实现,元素按自然顺序或自定义顺序排序。

Queue(队列)

  • 特点:先进先出(FIFO)或优先级队列。
  • 常见实现类
    • LinkedList:可以用作队列。
    • PriorityQueue:基于堆实现,元素按优先级排序。
    • ArrayDeque:基于数组实现的双端队列。

2. Map(映射)

Map 是存储键值对的容器,键不可重复。

常见实现类

  • HashMap
    • 基于哈希表实现,键值对无序。
    • 允许键和值为 null
    • 查询速度快。
  • LinkedHashMap
    • 基于哈希表和链表实现,键值对按插入顺序或访问顺序排序。
    • 适合需要保持插入顺序的场景。
  • TreeMap
    • 基于红黑树实现,键值对按键的自然顺序或自定义顺序排序。
    • 适合需要排序的场景。
  • Hashtable
    • 线程安全的哈希表实现,性能较差,已逐渐被 HashMap 取代。
    • 不允许键或值为 null
  • ConcurrentHashMap
    • 线程安全的哈希表实现,性能优于 Hashtable
    • 适合高并发场景。

总结

Java 中常见的容器可以分为两大类:

  1. Collection
    • ListArrayListLinkedListVector
    • SetHashSetLinkedHashSetTreeSet
    • QueueLinkedListPriorityQueueArrayDeque
  2. Map
    • HashMapLinkedHashMapTreeMapHashtableConcurrentHashMap