1.Java中的Collection集合总结
Collection
|---List(存储有序,可重复)
|---ArrayList
底层数据结构是数组,查询快,增删慢。
线程不安全、效率高
|---Vector
底层数据结构是数组,查询快,增删慢。
线程安全、效率低。
|---LinkedList
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高
|---Set(存储无序,元素唯一)
|---HashSet
底层数据结构是哈希表。
依赖hashCode()和equals()两个方法进行保证元素唯一性,开发中使用开发工具自动生成就好。
|---LinkedHashSet
底层数据结构是链表和哈希表
链表保证元素有序
哈希表保证元素唯一
|---TreeSet
底层数据结构是红黑树。
如何保证元素排序呢?自然排序或者比较器排序。
如何保证元素唯一呢?根据比较结果是否为0来进行判断。
Map
|---HashMap
底层是数组链表,使用hash算法来保证元素存储位置
|---LinkedHashMap
|---TreeMap
底层是红黑树实现。
集合中常见的数据结构总结
ArrayXxx:底层数据结构是数组,查询快,增删慢
LinkedXxx:底层数据结构是链表,查询慢,增删快
HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals()
TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序
Collection和Collections的区别?
1.Collection 是单列集合的顶层接口,有两个子接口List和Set
2.Collections 是针对集合进行操作的工具类,可以对集合进行排序和查找等