以下以Set介面為例,介紹使用iterator取出集合內所有的值的方法。
import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class setPractice { public static void main(String args[]){ /* * 宣告型態為Set,實體為HashSet的變數 * setTest,限制只能加 入String型態 * 的資料到setTest中 */ SetsetTest = new HashSet (); /* * 宣告Iterator型態的變數 it, * 限制只能將String型態加入it */ Iterator it; setTest.add("apple"); //apple加入setTest setTest.add("banana");//banana加入setTest setTest.add("tomato");//tomato加入setTest /* setTest呼叫iterator()方法,回傳Iterator型態的物件, * 該物件包含所有setTest內所存放的值, * 將該物件存入it */ it = setTest.iterator(); /* * hasNext()為使用游標走訪Iterator物件,檢查下一筆元素是包含物件, * 有包含物件則傳回true,否則false。 * 游標的起始位置在Iterator第一筆元素之前,所以第一次執行hasNext(), * 會檢查Iterator的第一筆元素,使用此方式可以走訪Iterator內的所有物件 */ while (it.hasNext()) { /* * next()為使用游標走訪Iterator,取出下一筆的值。 * 游標的起始位置在Iterator第一筆之前,所以第一次執行next(),會 * 取出Iterator的第一筆資料 */ System.out.println(it.next()); } } }
執行結果:banana
tomato
apple
綜合以上的介紹,我們整理使用iterator取出集合內所有的值的方法:
1. 該集合類別/介面需要有iterator方法(透過實作/繼承java.lang.Iterable而來)
2. 呼叫iterator方法,取得Iterator型態的物件,該物件包含集合內所有的值3. 使用while迴圈,迴圈的條件式內使用Iterator型態的物件呼叫hasNext(),迴圈會走訪Iterator的所
有元素。在while迴圈區塊內使用next(),每次執行回圈,就將走訪到的元素值取出。迴圈全部執行完畢
後,所有的值即取出完畢。
其它文章
沒有留言:
張貼留言