Collection集合总结
在进行Java开发的时候经常会用到集合,而集合又主要分为两种:Collection单列集合和Map集合。这里主要介绍一下Collection的一些常用子接口的区别。
Collection集合
😮 指单列集合,存储的一组对象。
-
List: Collection的子接口,特点:元素可重复,有序(存取顺序一致),可以通过索引操作元素
-
ArrayList:
底层结构是动态数组,查询快,增删慢,线程不安全。jdk7之前初始化容量10,jdk7之后初始化容量0,添加第一个元素容量变为10
-
LinkedList:
底层结构是双向链表,查询慢,增删快。
-
Vector:
底层结构是动态数组,线程安全,效率低(不推荐使用),初始化容量10
-
Set: Collection的子接口,特点:元素唯一,部分有序,部分实现排序
-
HashSet:
底层结构是Hash表,元素唯一,查询和增删效率都高。
-
LinkedHashSet:
底层结构是hash表+链表,hash表保证了操作元素的效率,链表保证了元素的有序性
-
TreeSet:
底层结构是红黑树,实现了元素的排序,查询效率高于数组,增删效率高于链表。