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);
}
}