Java类有哪些集合,请简单介绍一下。

Java集合类主要有Collection接口和Map接口两种。Collection接口主要存储集合类数据,而Map主要存储键值类数据(key-value)。

而Collection接口又区分List,Set,Queue接口。

List接口:

  • ArrayList:基于动态数组,查询快。写入,删除慢。

  • LinkedList:基于双向链表,插入,删除快,查询快。

  • Vector:线程安全的动态数组,类似ArrayList,但是开销大。

Set接口:

  • HashSet:基于哈希表,元素无序,不允许重复。

  • LinkedHashSet:基于链表和哈希表,维护插入顺序,不允许重复。

  • TreeSet:基于红黑树,元素有序,不允许重复。

Queue接口:

  • PrioprtyQueue:基于优先级堆,元素按照自然顺序或指定比较器排序。

  • linkedSet:可以作为队列使用,支持FIFO(先进先出)操作。

Map接口:

  • HashMap:基于哈希表,键值对无序,不允许键重复。

  • LinkedHashMap:基于链表和哈希表,维护插入顺序,不允许键重复。

  • TreeMap:基于红黑树,键值对有序,不允许键重复。

  • HashTable:线程安全的哈希表,不允许键或值对为null。

  • ConcuuentHashMap:线程安全的哈希表,适合高并发,不允许键或值为null。