List 特点
- 元素有序,可重复。
- 我们主要学习三种:
ArrayList
、LinkedList
、Vector
- 这三种都是 List 接口的实现类,使用上完全一样,只是实现原理不同,效率不同。
- List 集合判断元素是否相同,依据是元素的 equals 方法。
ArrayList
- 底层数组实现
- 查找快,增删慢
- 线程不安全
LinkedList
- 底层链表实现
- 增删块,查找慢
Vector
- 与 ArrayList 基本一样
- 线程安全(线程同步),效率低
存取元素
- List 集合元素存取方法一致
- 使用 add() 方法增加元素
- 由于 List 集合有序,可以使用 get() 方法获取元素
- 元素的迭代(Iterator)
通过集合对象的 iterator() 方法获得迭代器 Iterator
通过 Iterator 迭代器的 hasNext() 方法判断是否存在下一个元素
通过 Iterator 迭代器的 next() 方法获取下一个元素 - 元素的迭代(Enumeration)
迭代 Vector 集合中的元素可以使用 Enumeration
通过 Enumeration 的 hasMoreElements() 方法判断是否还有元素
通过 Enumeration 的 nextElement() 方法返回下一个元素
Collection
|--List:元素是有序的,元素可以重复。因为该集合体系有索引。
|--ArrayList:底层的数据结构使用的是数组结构。特点:查询速度很快。但是增删稍慢。线程不同步。
|--LinkedList:底层使用的链表数据结构。特点:增删速度很快,查询稍慢。线程不同步。
|--Vector:底层是数组数据结构。线程同步。被 ArrayList 替代了。因为效率低。
|--Set:元素是无序,元素不可以重复。