Java 集合可分为 Map 和 Collection 两种体系:
Map子类
- HashMap:基于哈希表实现,非线程安全的。
- TreeMap:基于红黑树实现,用键值对的形式存储元素,可以快速定位和访问元素,并且可以保证元素有序。
- Hashtable:基于哈希表实现,底层是安全的,其中所有的 方法都带有synchronized关键字,效率较低,使用较少。
Collection子类有List和Set
List子类
- ArrayList:基于数组实现,支持随机访问,但插入和删除元素需要移动后续元素,时间复杂度为O(n)。
- LinkedList:基于双向链表实现,支持插入和删除操作,但随机访问需要遍历链表,时间复杂度为O(n)。
- Vector:基于数组实现,底层是安全的,效率较低,使用较少。
Set子类
- HashSet:基于哈希表实现,具有快速的插入、删除和查询操作,但不能保证元素的顺序。
- TreeSet:基于红黑树(一种自平衡二叉搜索树)实现,具有快速的插入、删除和查询操作,同时可以保证元素有序。