Collection的集合总结
Collection集合接口 有两大继承接口 List 和 Set,两大子接口又各分为5个实现类
Collection
List 特点: 有序的排列,元素不唯一可以重复
子类名称 | 特点 |
---|---|
1.ArrayList | 底层数据是数组,查询快,增删慢,线程不安全,效率高 |
2.Vector | 底层数据是数组,查询快,增删慢,线程安全,效率低 |
3.LinkedList | 底层数据是链表,查询慢,增删快,线程不安全,效率高 |
Set 特点: 无序的的排列,元素唯一自动去除重复元素
子类名称 | 特点 |
---|---|
1.Hashset | 底部结果是哈希表,唯一性有HashCode()和 equals()方法保证:需要自动重写方法 |
(1).LinkedHashSet | 底层数据是链表和哈希表,链表保证元素有序,哈希表保证唯一 |
2.Treeset | 底部结构是红黑树,以自然排序和比较器排序,根据比较的值是否是0来决定 |
针对与Collection的集合我们到底使用谁?
唯一吗?
-----是
---------|–Set
----------------排序吗?
------------------------否|–HashSet
------------------------是|–TreeSet
(如果你知道用set 却不知道用哪种Set,就用HashSet。)
------否
--------|–List
--------------安全吗
------------------------是|–Vector
------------------------否|–ArrayList,LinkedList
---------------------------------------------查询多:ArrayList
---------------------------------------------删除多:LinkedList
(如果你知道用List 却不知道用那种List 就用ArrayList。 )
如果你知道用集合,但是不知道用哪一种,就用ArrayList。
3.在集合中常见的数据结构!
ArrayXxx:底层数据是数组,查询快,增删慢
LinkedXxx:底层数据是链表,查询慢,增删快
HsahXxx:底层数据是哈希表,依赖两种方法HashCode 和equals方法
TreeXxx:底层数据是红黑树,两种排序方法自然排序和比较器排序。