Collection:是单列集合的顶层接口
|--List<E> 有序,可重复
|--AbstractList:父类AbstractCollection抽象类,实现了List接口
|--ArrayList:父类AbstractList
底层数据结构是数组,查询快,增删慢。
线程不安全,不同步,效率高
|--Vector:父类AbstractList
底层数据结构是数组,查询快,增删慢。
线程安全,同步,效率低
|--LinkedList:父类AbstractSequentialListt
底层数据结构是链表,查询慢,增删快。
线程不安全,不同步,效率高
|--Set<E> 无序,唯一
|--HashSet
底层数据结构是哈希表。
如何保证元素唯一性的呢?
依赖两个方法:hashCode()和equals()
开发中自动生成这两个方法即可
|--LinkedHashSet
底层数据结构是链表和哈希表
由链表保证元素有序
由哈希表保证元素唯一
|--TreeSet
底层数据结构是红黑树。
如何保证元素排序的呢?
自然排序
比较器排序
如何保证元素唯一性的呢?
根据比较的返回值是否是0来决定
在集合中常见的数据结构(掌握)
ArrayXxx:底层数据结构是数组,查询快,增删慢
LinkedXxx:底层数据结构是链表,查询慢,增删快
HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals()
TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序