Iterator接口:用于遍历单列集合
成员方法:
boolean hasNext(); 判断迭代器是否还有下一个元素
E next(); 获取迭代器中下一个元素
void remove(); 从迭代器中删除某个元素
//这里会报错地下的NoSuchElementException 没有搜索到元素异常,是因为迭代器的所有元素都获取完了,所以会显示异常,如果把最后一个删掉就不会显示异常了,这种获取的方式是不推荐的不建议使用
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class text {
public static void main(String[] args) {
Collection<String> coll=new ArrayList<>();
coll.add("aaa");
coll.add("bbb");
coll.add("ccc");
coll.add("ddd");
//使用迭代器对集合进行遍历
Iterator<String> it=coll.iterator();
boolean b=it.hasNext() ;
System.out.println(b);
//E next(); 获取迭代器中的下一个元素
String e=it.next();
System.out.println(e);//aaa
b=it.hasNext();
System.out.println(b);
e=it.next();
System.out.println(e);//ddd
b=it.hasNext();
System.out.println(b);
e=it.next();
System.out.println(e);
b=it.hasNext();
System.out.println(b);
e=it.next();
System.out.println(e);
b=it.hasNext();
System.out.println(b);//NoSuchElementException 没有搜索到元素异常
e=it.next();
System.out.println(e);
}
}
第二种迭代器遍历集合
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class text {
public static void main(String[] args) {
Collection<String> coll=new ArrayList<>();
coll.add("aaa");
coll.add("bbb");
coll.add("ccc");
coll.add("ddd");
//使用迭代器对集合进行遍历
Iterator<String> it=coll.iterator();
while (it.hasNext()){
String e=it.next();
System.out.println(e);
}
}
}
从迭代器删除元素
//ConcurrentModificationException并发修改异常,不能这么删除,可以用到void remove(); 从迭代器中删除某个元素的方法
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class text {
public static void main(String[] args) {
Collection<String> coll=new ArrayList<>();
coll.add("aaa");
coll.add("bbb");
coll.add("ccc");
coll.add("ddd");
Iterator<String> it=coll.iterator();
while (it.hasNext()){
String e=it.next();
if (e.equals("bbb")){
coll.remove(e);//ConcurrentModificationException并发修改异常
// it.remove();//推荐的删除方式
}
}
System.out.println(coll);
}
}