(1)定义:有序,可重复
(2)属性: 3个子类特点-3个子类特有功能
1)List的子类特点
1-ArrayList:
底层数据结构是数组,查询快,增删慢
线程不安全,效率高
2-Vector:
底层数据结构是数组,查询快,增删慢
线程安全,效率低
3-LinkedList:
底层数据结构是链表,查询慢,增删快
线程不安全,效率高
2)子类特有功能
1-ArrayList
没有特有功能需要学习
2-Vector
1.添加
public void addElement(E obj) -- add()
--将指定的组件添加到此向量的末尾,将其大小增加一。
2.获取
public E elementAt(int index) -- get()
--返回指定索引处的组件
public Enumeration<E> elements() -- iterator()
--返回此向量的组件的枚举
3-LinkedList
1.添加
addFirst()--开头添加
addLast()--结尾添加
2.删除
removeFirst()--移除开头
removeLast()--移除结尾
3.获取
getFirst()--得到开头
getLast()--得到结尾
getLast()--得到结尾
(3)注意:初始化大小 和 扩容机制
1)ArrayList,Vector,LinkedList,HashMap,HashSet
1-ArrayList 初始化大小是 10
扩容点规则是,新增的时候发现容量不够用了,就去扩容
扩容大小规则是,扩容后的大小= 原始大小*1.5。
2-Vector初始化大小是 10
扩容增量:原容量的 1倍,如 Vector的容量为10,一次扩容后是容量为20
3-linkedList 是一个双向链表,没有初始化大小,也没有扩容机制
4-HashMap 初始化大小是 16
扩容因子默认 0.75(可以指定初始化大小,和扩容因子)
扩容机制.(当前大小 和 当前容量 的比例超过了 扩容因子,就会扩容,扩容后大小为 1倍。
例如:初始大小为16,扩容因子0.75,当容量为12的时候,比例已经是0.75。触发扩容,扩容后的大小为32.)
5-HashSet默认初始容量为16。
扩容因子默认为0.75
扩容增量:原容量的 1倍
如 Hash Set的容量为16,一次扩容后是容量为32
6-HashTable:默认初始容量为11,从Java1.2开始就被废弃
扩容因子默认为0.75
扩容增量:2*原数组长度+1,如 HashTable的容量为11,一次扩容后是容量为23
集合-Set