Iterator的对象问题
由集合调用iterator()方法返回一个Iterator对象
ArrayList list=new ArrayList();
Iterator itr=list.iterator();
package 迭代器遍历ArrayList;
import java.util.*;
public class Demo {
public static void main(String []args)
{
ArrayList list = new ArrayList();
for(int i=0;i<10;i++)
{
list.add(i);
}
Iterator itr = list.iterator();
while(itr.hasNext()) //迭代器相当于指针
{
System.out.println(itr.next());
}
}
}
迭代器的删除操作
package ex7_38;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
//两个迭代器同时修改同一个集合会发生冲突,只能用当前的一个迭代器来修改
public class TwoIterator {
public static void main(String[] args) {
List list = new ArrayList();
list.add("one");
list.add("second");
list.add("third");
list.add(new Integer(4));
list.add(new Float(5.0F));
list.add("second"); // true
list.add(new Integer(4)); // true
ListIterator listIterator = list.listIterator();
Iterator iterator = null;
iterator = list.iterator();
if (iterator.hasNext())
iterator.next();
iterator.remove();// 会删除该next()返回的元素。
// 用另个迭代器操作上一个迭代器改变后的数据,将发生异常
while (listIterator.hasNext())
System.out.println(listIterator.next());
}
}
Iterator和ListIterator的区别
1.ListIterator 有add方法,并且可以逆序遍历,修改对象,set方法对list等结构进行操作,而Iterator不可以,只能进行删除操作.
前序遍历:hasNext()//确定下一个元素存不存在
next()//指向下一个元素,并返回它
逆序遍历:hasPrevious()//确定最后一个元素存不存在
previous()//指向下一个元素,返回它