一、Collection 结构包含:
List 有序,可重复
---ArrayList
底层结构是数组,查询快,增删慢.--->线程不安全,效率高
---Vector
底层数据结构是数组,查询快,增删慢--->线程安全,效率低
----LinkedList
底层数据结构是链表,查询慢,增删快---->线程不安全,效率高
Set 无序,不可重复
--->HashSet
底层数据结构是哈希表.依赖两个方法,hashCode()和equals()方法
===>LinkedHashSet
底层数据结构是链表和哈希表.由链表保证元素有序,由哈希表保证元素唯一
--->TreeSet
底层数据结构是红黑树(二叉树).有自然排序(compare())和比较器排序Comparator()两种
二、Collection 中集合的选择:
1、需要数据唯一不重复用 Set,同时,需要排序用TreeSet,不需要排序用HashSet.在判断出是Set不知道具体用哪个子类时,用HashSet
2、不需要数据唯一用List,同时,需要安全用Vector,不需要安全则用ArrayList或者LinkedList。如果查询多用ArrayList,增删多用LinkedList。同样,知道是List但是不清数具体哪一个List,那就用ArrayList。
3、如果你知道用Collection集合,但是不知道是哪个集合,那就用ArrayList。
三、Collection总结:
1、Set实现的基础是Map(HashMap)
Set中的元素是不能重复的,如果使用add(Object obj)方法添加已经存在的对象,则会覆盖前面的对象