Java容器

概述

容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。

Collection

List

  • ArrayList:基于动态数组实现,支持随机访问。
  • Vector:与ArrayList类似,但它是线程安全的。
  • LinkedList:基于双向链表实现,只能顺序访问,但在链表中间插入和删除元素的速度很快。LinkedList还可以用作栈、队列和双向队列。

Set

  • TreeSet:基于红黑树实现,支持有序性操作。查找效率不不如HashSet,HashSet查找的时间复杂度为0(1),TreeSet则为O(logN)。
  • HashSet:基于哈希表实现,支持快速查找,但不支持有序性操作
  • LinkedHashSet:具有HashSet的查找效率,并且内部维护使用双向链表维护元素的插入顺序

Queue

  • LinkedList:可以用来实现双向队列
  • PriorityQueue:基于堆结构实现,可以用来实现优先队列

Map

  • TreeMap:基于红黑树实现
  • HashMap:基于哈希表实现
    • HashTable:和HashMap类似,但它是线程安全的。它是遗留类,不应该去使用它,而是使用ConcurrentHashMap来支持线程安全。
Donate comment here