標籤:image remove collect ast 實現 tor 個數 改變 alt
迭代器的作用:就是用於抓取集合中的元素。
迭代器的方法:
hasNext() 問是否有元素可遍曆。如果有元素可以遍曆,返回true,否則返回false 。
next() 擷取元素...
remove() 移除迭代器最後一次返回 的元素
NoSuchElementException 沒有元素的異常。
出現的原因: 沒有元素可以被迭代了。。。
import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class Demo01 { public static void main(String[] args) { Collection c1=new ArrayList() ; c1.add("狗娃"); c1.add("狗剩"); c1.add("鐵蛋");
c1.add("美美"); Iterator it =c1.iterator(); while (it.hasNext()) { System.out.println("元素是:"+it.next()); } }}
輸出結果:
元素是:狗娃
元素是:狗剩
元素是:鐵蛋
元素是:美美
Q: Iterator()方法返回是一個介面類型,為什麼介面又可以調用方法使用呢?
A: iterator實際上返回的是介面Iterator的實作類別。
remove方法:移除迭代器最後一次返回 的元素
import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class Demo01 { public static void main(String[] args) { Collection c1=new ArrayList() ; c1.add("北京"); c1.add("上海"); c1.add("廣州"); Iterator it =c1.iterator(); while(it.hasNext()) { if("北京".equals(it.next())) { it.remove(); } } System.out.println("移除後:"+c1); } }
輸出結果:移除後:[上海, 廣州]
package cn.itcast.list;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
/*
迭代器在變數元素的時候要注意事項: 在迭代器迭代元素 的過程中,不允許使用集合對象改變集合中的元素 個數,如果需要添加或者刪除只能使用迭代器的方法進行操作。
如果使用過了集合對象改變集合中元素個數那麼就會出現ConcurrentModificationException異常。
迭代元素 的過程中: 迭代器建立到使用結束的時間。
*/
public class Demo5 {
public static void main(String[] args) {
List list = new ArrayList();
list.add("張三");
list.add("李四");
list.add("王五");
ListIterator it = list.listIterator();//擷取到迭代器
/*while(it.hasNext()){
System.out.print(it.next()+",");
//it.add("aa"); // 把元素添加到當前指標指向位置
list.add("aa"); // add方法是把元素添加到集合的末尾處的。
//list.remove("張三");
}*/
list.add("aa");
it.next();
System.out.println("\r\n集合的元素:"+ list);
}
}
java集合之迭代器