package day15;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/* 迭代器
*
* toArray()
* iterator()
* 迭代器的作用就是用于抓取集合中的元素
* 3个方法
* hasNext() 问是否有下一个元素,如果有返回T 否则F
*
* next() 取出元素...
*
* remove()
* 迭代器在遍历元素的过程中,不允许使用集合对象改变集合中的元素个数,
* 如果需要添加或删除只能使用迭代器中的方法进行操作。
* 如果使用了集合对象改变集合中的元素个数,那么就会出现并发异常。
*
* 迭代器迭代的过程:从创建到结束时间段。
*
*
*
*
*/
public class Demo1 {
public static void main(String[] args) {
Collection c = new ArrayList();
c.add("adc");
c.add("apc");
c.add("sup");
// Object [] objs = c.toArray();
// for(int i = 0 ;i < objs.length; i++){
// System.out.println(objs[i]);
//
// }
//要求使用迭代器调用iterator,iterator方法返回值实际上是接口的一个实现类,
Iterator it = c.iterator();
// System.out.println(it.hasNext());
// while(it.hasNext()){
// System.out.println(it.next());
// }
// it.remove();//此时会报错,remove()移除的是上一次返回的对象,当前迭代器还没有返回任何元素。
it.next(); // adc
it.remove();//adc 被移除
while(it.hasNext()){//hasNext()如何判断的? 当前指针所指元素下标如果等于容器的长度,则没有下一个了。
System.out.println(it.next());
while(it.hasNext()){//清空迭代器元素
it.next();
it.remove();
}
System.out.println(it.hasNext());
}
}
}