常见的集合类以及优劣
1. ArrayList
优点:1)使用动态数组实现,可以动态扩展容量。2)支持随机访问,通过索引可以快速访问元素。
缺点:插入和删除元素的效率相对较低,因为需要移动元素。
2. LinkedList
优点:1)使用双向链表实现,对于插入和删除元素操作效率较高。2)适合实现队列和双端队列。
缺点:不支持快速随机访问,需要遍历链表。
3. HashSet
优点:1)基于哈希表实现,具有O(1)快速的插入、删除和查找操作。2)不允许重复元素。
缺点:不保证元素的顺序。
4. LinkedHashSet
优点:在HashSet的基础上,使用链表维护了元素的顺序,可以保持插入顺序。
缺点:稍微占用更多的内存。
5. TreeSet & TreeMap
优点:1)基于红黑树实现,保证元素有序。2)支持自然排序和自定义排序。
缺点:插入、删除等操作相对比较耗时。
6. HashMap
优点:1)基于哈希表实现,具有快速的插入、删除和查找操作。2)允许null键和null值。
缺点:不保证元素的顺序。
7. LinkedHashMap
优点:在HashMap的基础上,使用链表维护了元素的顺序,可以保持插入顺序或者访问顺序。
缺点:稍微占用更多的内存。