迭代器注意的点:
- 1.报错NoSuchElementException
- 2.迭代器遍历完毕,指针不会复位
- 3.循环中只能使用一次next方法
- 4.迭代器遍历时,不能使用集合的方法进行增加或者删除.只能使用迭代器进行删除,但是无法通过迭代器进行添加。但是,当遍历结束时,可以使用迭代器的方法进行遍历。
package demo;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class submit {
public static void main(String[] args) {
/*
迭代器注意的点:
1.报错NoSuchElementException
2.迭代器遍历完毕,指针不会复位
3.循环中只能使用一次next方法
4.迭代器遍历时,不能使用集合的方法进行增加或者删除
*/
Collection<String> coll = new ArrayList<>();
coll.add("aaa");
coll.add("bbb");
coll.add("ccc");
Iterator<String> it = coll.iterator();
while(it.hasNext()){
String st = it.next();
System.out.println(st);
}
//2.如果要二次遍历,要获取一个新的迭代器对象,进行遍历
Iterator<String> it2 = coll.iterator();
while(it2.hasNext()){
String st = it2.next();
System.out.println(st);
}
// 4. 修改不能使用集合的方法,例如 coll.remove("aaa") ,会报错。
//要使用迭代器进行删除。
Iterator<String> it3 = coll.iterator();
while(it3.hasNext()){
String st = it3.next();
if(st.equals("bbb")){
// coll.remove("bbb") //报错
it3.remove();
}
}
System.out.println(coll);
// 没有在迭代器遍历的过程中,就可以使用集合的方式进行元素的添加喝删除。
coll.remove("aaa");
System.out.println(coll);
}
}