collection为顶层,它分为两部分List集合和Set集合
【一】List
- ArrayList:底层数据结构为数组,查询快,增删慢;线程不安全,效率高。
- Vector:底层数据结构为数组,查询快,增删满;线程安全,效率低。
- LinkedList:底层数据结构为链表,查询慢,增删快;线程不安全,效率高。
【二】Set
在List集合中,侧重掌握的时几种遍历方式;Set集合中,侧重掌握的是排序及其输出的唯一性和无序性。
- HashSet: HashSet : 底层数据结构是哈希表,元素无序,且唯一,唯一是要靠元素重写hashCode()和equals()方法来保证的,如果元素不重写这两个方法,则无法保证元素唯一,线程不安全效率高,允许存储null元素。
Integer 和String 默认重写了hashCode()和equals()方法。 - LinkedHashSet:底层数据结构是链表和哈希表 ,元素有序且唯一 靠链表保证元素有序,靠哈希表保证元素唯一 线程不安全,效率高。
- TreeSet :底层数据结构是二叉树,元素唯一且能对元素进行排序,排序分为自然排序和比较器排序