【Java類集】_Iterator介面筆記
本章目標:
掌握集合輸出的標準操作
掌握Iterator介面的主要作用及使用注意事項
在集合的操作中支援以下幾種方式:
Iterator
ListIterator
foreach輸出
Enumeration輸出
3、具體內容
Iterator介面簡介
集合輸出的標準操作:
"在使用集合輸出的時候必須以下的思路:只要是碰到了集合輸出的操作,就一定使用Iterator介面,因為這是最標準的做法。"
Iterator介面的操作原理:
Iterator是專門的迭代輸出介面,所謂的迭代輸出就是將元素一個個進行判斷,判斷是否有內容,如果有內容則把內容取出
對於Iterator而言,因為其本身是一個介面,所以要想執行個體化則必須依靠Collection介面完成。
Iterator<E> iterator()
import java.util.Iterator;import java.util.List;import java.util.ArrayList;public class IteratorDemo01{ public static void main(String[] args){ List<String> allList = new ArrayList<String>(); allList.add("Hello"); allList.add("_"); allList.add("World!!!"); Iterator<String> iter = all.iterator(); while(iter.hasNext()){ //判斷是否有內容 System.out.println(iter.next()); //輸出內容 } }}
輸出:
Hello
_
World!!!
以上操作為Iterator的標準操作做法
在Iterator介面中提供了remove()方法,此方法的功能是刪除當前的對象。
import java.util.List;import java.util.Iterator;import java.util.ArrayList;public class IteratorDemo02{ public static void main(String[] args){ List<String> all = new ArrayList<String>(); all.add("hello"); all.add("_"); all.add("world!!!"); Iterator<String> iter = all.iterator(); while(iter.hasNext()){ String str = iter.next(); if("_".equals(str)){ iter.remove(); //刪除元素 }else{ System.out.println(str); //輸出內容 } } System.out.println("刪除之後的集合:"+all); }}
輸出:
hello
world!!!
刪除之後的集合:[hello, world!!!]
在實際上Iterator是很少調用刪除操作的,因為其本身的功能是輸出內容。當然,對於刪除操作也有以下的注意點:
List介面本身存在刪除的方法:remove()
如果在使用迭代輸出的過程中使用了List中的remove()執行刪除操作,則代碼將出現問題。
import java.util.List;import java.util.Iterator;import java.util.ArrayList;public class IteratorDemo02{ public static void main(String[] args){ List<String> all = new ArrayList<String>(); all.add("hello"); all.add("_"); all.add("world!!!"); Iterator<String> iter = all.iterator(); while(iter.hasNext()){ String str = iter.next(); if("_".equals(str)){ all.remove(); //刪除元素 }else{ System.out.println(str); //輸出內容 } } System.out.println("刪除之後的集合:"+all); }}
輸出:
IteratorDemo02.java:14: 找不到符號
符號: 方法 remove()
位置: 介面 java.util.List<java.lang.String>
all.remove(); //刪除元素
^
1 錯誤
4、總結
Iterator介面的功能是從前向後輸出,屬於單向輸出
Iterator的主要功能就是完成迭代輸出操作的
在使用Iterator的時候最好不要刪除資料