Collection List Set
List--->ArrayList Vector LinkedList
ArrayList:底层数据结构是数组 查询快,增删慢 线程不安全 效率高
Vector:底层数据结构是数组 查询快,增删慢,线程安全 效率低
LinkedList:底层数据结构是链表 查询慢 增删快 线程不安全 x效率高
集合遍历的遍历方式 迭代器,for循环
泛型机制:JDK1.5之后引入的一个新特性,将数据类型的明确工作推迟到创建对象,或者调用方法时再去明确
的一种机制 泛型可以定义在 接口上,类上,方法上
泛型的好处:扩展性强,他将问题提前到了编译器,避免了向下转型
向下转型 ? extends Object 向上转型 ? super Dog
Set 集合
List集合的特点:元素有序,元素可以重复
Set集合的特点:元素无序
元素不重复
Set--->HashSet,TreeSet,LinkedHashSet
HashSet
此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。
它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。
唯一性,是要靠元素重写hashCode()和equals()方法,如果不重写则无法保证元素唯一
哈希表:他具有数组跟链表的特点
LinkedHashSet
具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。线程不安全,效率高
LinkedHashSet 底层数据结构是链表和哈希表
链表保证了元素有序,哈希表保证了元素唯一
LinkedHashSet 元素有序且唯一
TreeSet
TreeSet 底层数据结构是二叉树(红黑树)
TreeSet集合的特点,元素唯一,且能对元素进行排序 线程不安全,效率高
使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,
具体取决于使用的构造方法。