1、Collection集合总结:
Collection
|–List 有序,可重复
|–ArrayList
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高
|–Vector
底层数据结构是数组,查询快,增删慢。
线程安全,效率低
|–LinkedList
底层数据结构是链表,查询快,增删慢。
线程不安全,效率高
|–Set 无序,唯一
|–HashSet
底层数据结构是哈希表。
如何保证元素唯一性?
依赖两个方法:hashCode()和equals()
开发中直接生成这两个方法即可。
|–LinkedHashSet
底层数据结构是链表和哈希表
链表保证数据元素有序
哈希表保证元素唯一性
|–TreeSet
底层数据结构是红黑树
如何保证元素排序的呢?
自然排序
比较器排序
如何保证元素唯一性的呢?
根据比较的结果返回值是否为0来决定
2、针对Collection集合我们到底使用哪一个?
分析:
唯一吗?
唯 一:Set
排序吗?
是:TreeSet
否:HashSet
如果你知道是用Set,但是不知道用哪一个,就用HashSet
不唯一:List
要安全吗?
是:Vector
否:ArrayList 或者 LinkedList
查询多:ArrayList
增删多:LinkedList
如果你知道使用List,但是不知道用哪个List,就用ArrayLst
如果你知道是Collection集合,但是不知道用哪个,就用ArrayList。
3.集合中常见的数据结构
ArrayXxxx:底层结构是数组,查询快,增删慢。
LinkedXxx:底层数据结构是链表,查询慢,增删快
HashXxx:底层数据结构是哈希表,依赖两个方法:hashCode()和equals()
TreeXxx:底层数据结构是二叉树,有两种排序方式:自然排序和比较器排序