package com.jh;
import java.util.*;
public class TestIterator {
public static void main(String[] args) {
Collection col=new ArrayList();
col.add("java01");
col.add("java02");
col.add("java03");
//如下案例是获取到col里的Java01,Java02,Java03,类似循环的意思
Iterator ite=col.iterator();//获取内部类的对象
while(ite.hasNext()) //先判断是否有次对象,有就返回true,没有就false,如果返回true就是代表有此对象
{
Object obj=ite.next();//获取一个对象
System.out.println(obj);
}
}
}
/案例2
package com.jh;
import java.util.*;
public class TestIteratorList {
/**
* @param args
*/
public static void main(String[] args) {
List col=new ArrayList();
col.add("java01");
col.add("java02");
col.add("java03");
// Iterator ite=col.iterator();
// while(ite.hasNext())
// {
// Object obj=ite.next();
// //在迭代的过程中,使用集合删除,添加集合中的对象出现了异常java.util.ConcurrentModificationException
也就是说不能在迭代的过程中删除,添加,对象,因此如下都会出错,JDK1.6的不能修改
// if("java02".equals(obj))//如果找到java03,就从集合中把java03删除
// {
col.add("hello");//增加NO
col.remove("java03");//删除NO
col.set(1,"hello");//修改OK
//
// ite.remove();//迭代器的删除功能
//
// }
// }
// 如下是:这个迭代器的可以实现在迭代的过程中对集合进行添加,删除,修改,一般不对在这个过程中做增删修
ListIterator listite=col.listIterator();
while(listite.hasNext())
{
Object objl=listite.next();
if("java03".equals(objl))
{//在迭代器里增加,删除,修改
// listite.add("hello");//当找到java03就会在此后面添加个hello,输出效果:[java01, java02, java03, hello]
// listite.remove();//在迭代器里删除,如找到了java03,就删除
listite.set("java0303");//在迭代器里,如找到了java03就修改为java03o3
}
}
sop(col);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}