集合体系之List及其子类ArrayList,LinkedList与Vector及其迭代器知识
List(接口)
特点:有序(存储与取出顺序相同),可重复
List子类特点:
ArrayList:底层结构是数组,查询快,增删慢。
线程不安全,效率高。
Vector:底层结构是数组,查询快,增删慢。
线程安全,效率低。
LinkedList:底层结构是链表,查询慢,增删快。
线程不安全,效率高。
List特有功能
-
添加功能
void add(int index, E element):在指定位置添加元素
-
获取功能
E get(int index):返回列表中指定位置的元素。
-
列表迭代器功能
ListIterator<E> listIterator(int index):List特有的迭代器
-
删除功能
E remove(int index):移除列表中指定位置的元素,并把删除的元素返回
-
修改功能
E set(int index,E element):用指定元素替换列表中指定位置的元素.
List集合的特有遍历功能:
通过size()方法确定边界,在根据get()方法得到对应位置的元素
ListIterator接口
List特有的迭代器
该迭代器继承Iterator迭代器,所以,可直接用hhasNext()和next()方法
特有功能
-
hasPrevious
boolean hasPrevious():如果以逆向遍历列表,列表迭代器有多个元素,则返回 true。
-
previous
E previous():返回列表中的前一个元素。
注意:只有当迭代器先正向遍历后才能逆向遍历,所以意义不大。
ArrayList (类)
特点:底层数据类型是数组,查询快,增删慢,线程不安全,效率高。
Vector (类)
特点:底层结构是数组,查询快,增删慢。线程安全,效率低。
特有功能
-
添加功能
- addElement
public void addElement(E obj):将指定的组件添加到此向量的末尾,将其大小增加 1。如果向量 的大小比容量大,则增大其容量。 被add()替代
-
获取功能
- elementAt
public E elementAt(int index):返回指定索引处的组件。 被get()替代
- elements
public Enumeration<E> elements():返回此向量的组件的枚举。 被iterator()替代
Enumeration(接口 )
早期的集合迭代工具,jdk1.2后被Iterator替代
-
方法摘要
- hasMoreElements
boolean hasMoreElements():测试此枚举是否包含更多的元素。 被hasNext()替代
- nextElement
E nextElement():如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。 被next()替代
LinkedList (类)
特点:底层结构是链表,查询慢,增删快。 线程不安全,效率高。
特有功能
-
添加功能
- addFirst
public void addFirst(E e):将指定元素插入此列表的开头。
- addLast
public void addLast(E e):将指定元素添加到此列表的结尾。
-
获取功能
- getFirst
public E getFirst():返回此列表的第一个元素。
- getLast
public E getLast():返回此列表的最后一个元素。
-
删除功能
- removeFirst
public E removeFirst():移除并返回此列表的第一个元素。
- removeLast
public E removeLast():移除并返回此列表的最后一个元素。