listIterator(迭代)
返回的是一个List接口中特有的迭代器
迭代
listIterator()
ListIterator特有的方法:
添加:
hasPrevious() 判断是否存在上一个元素。
previous() 当前指针先向上移动一个单位,然后再取出当前指针指向的元素。
next(); 先取出当前指针指向的元素,然后指针向下移动一个单位。
---------------------------
add(E e) 把当前有元素插入到当前指针指向的位置上。
get(int) 获得指定索引位置的元素
set(E e) 替换迭代器最后一次返回的元素。
实例1:
package Demo;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class Demo9 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
String[] name = {
"1","2","3","4","5","6"
};
for(int i=0;i<name.length;i++){
list.add(name[i]);
}
ListIterator<String> it = list.listIterator(); //返回的是一个List接口中特有的迭代器
while(it.hasNext()){ //判断是否有下一个元素
System.out.println("有上一个元素吗?"+ it.hasPrevious());
System.out.println("先取出当前指针指向的元素,然后指针向下移动一个单位:"+it.next());
//System.out.println("当前指针先向上移动一个单位,然后再取出当前指针指向的元素:"+ it.previous());
}
System.out.println("集合的元素:"+ list);
}
}
/*
有上一个元素吗?false
先取出当前指针指向的元素,然后指针向下移动一个单位:1
有上一个元素吗?true
先取出当前指针指向的元素,然后指针向下移动一个单位:2
有上一个元素吗?true
先取出当前指针指向的元素,然后指针向下移动一个单位:3
有上一个元素吗?true
先取出当前指针指向的元素,然后指针向下移动一个单位:4
有上一个元素吗?true
先取出当前指针指向的元素,然后指针向下移动一个单位:5
有上一个元素吗?true
先取出当前指针指向的元素,然后指针向下移动一个单位:6
集合的元素:[1, 2, 3, 4, 5, 6]
*/
实例2:
/*
练习: 使用三种方式遍历集合的元素.
第一种: 使用get方法遍历。
第二种: 使用迭代器正序遍历。
第三种: 使用迭代器逆序遍历。
*/
package cn.itcast.list;
import java.util.List;
import java.util.ArrayList;
import java.util.ListIterator;
public class Demo4 {
public static void main(String[] args) {
List list = new ArrayList();
list.add("张三");
list.add("李四");
list.add("王五");
System.out.println("======get方法遍历=======");
for(int i = 0 ; i<list.size() ; i++){
System.out.print(list.get(i)+",");
}
System.out.println("\r\n======使用迭代器正序遍历==========");
ListIterator it = list.listIterator(); //获取到迭代器
while(it.hasNext()){
System.out.print(it.next()+",");
}
System.out.println("\r\n======使用迭代器逆序遍历==========");
while(it.hasPrevious()){
System.out.print(it.previous()+",");
}
}
}
迭代器在变量元素的时候要注意事项: 在迭代器迭代元素 的过程中,不允许使用集合对象改变集合中的元素个数,如果需要添加或者删除只能使用迭代器的方法进行操作。
如果使用过了集合对象改变集合中元素个数那么就会出现ConcurrentModificationException异常。 迭代元素
的过程中: 迭代器创建到使用结束的时间。