目录
ListIterator listIterator()
List特有的迭代器
该迭代器继承了Iterator接口,在其中就可以使用hasNext()和next方法
ListIterator接口的成员方法
boolean hasPrevious(); 返回true如果遍历反向列表,列表迭代器有多个元素
E previous(); 返回列表中的上一个元素,并向后移动光标位置
ConcurrentModificationException:并发修改异常
当方法检测到对象并发修改的时候,但是不允许这种修改就抛出此异常
原因分析:
迭代器是依赖与集合而存在的,在遍历迭代器中元素的时候,判断成功后,我们往集合中添加新的元素,但是迭代器并不知道你添加了新的元素。所以就报错了。
描述:在迭代器遍历的时候,不能通过集合去修改元素
解决:1、迭代器遍历,迭代器修改,在该元素后面添加
2、集合遍历,集合修改(普通的for循环),在末尾添加
List(接口)子类介绍
ArrayList
底层数据结构是数组,查询快,增删慢
线程不安全,效率高
Vector
底层数据结构是数组,查询快,增删慢
线程是安全的,效率低
LinkedList
底层数据结构是链表,查询慢,增删快
线程不安全,效率高
List接口下面有很多个子类实现,我们在开发中使用谁
如果不知道使用谁,也无特殊要求,你就使用ArrayList
ArrayList类的概述
底层数据结构是数组,查询快,增删慢
线程不安全,效率高
Vector类概述及使用
概述:
底层数据结构是数组,查询快,增删慢
线程安全,效率低
Vector类特有功能
public void addElement(E obj) 在集合末尾添加元素,功能和add方法一样
public E elementAt(int index) 该方法与get(int)方法相同,虽然没有区别,但是多了synchronized关键字
public Enumeration elements()枚举,返回地址值
LinkedList类概述
底层数据结构是链表,查询慢,增删快
线程不安全,效率高
LinkedList的特有功能:
1、添加功能:
public void addFirst(Object obj):在该集合开头插入指定的元素
public void addLast(Object obj)将指定的元素追加到此列表的末尾。
这个方法相当于add(Object) 。
2、获取功能:
public Object getFirst():返回此集合中的第一个元素。
getLast():返回此列表中的最后一个元素。
3、删除功能:
public Object removeFirst():移除集合中第一个元素
public Object removeLast():移除集合中最后一个元素