凡是有實作java.lang.Iterable介面的類別,或是繼承java.lang.Iterable介面的介面,都具有iterator()方法,可用iterator取值。Set介面與List介面都有繼承java.lang.Iterable,可以使用iterator取值。
以下以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中
*/
Set setTest = 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());
}
}
}
綜合以上的介紹,我們整理使用iterator取出集合內所有的值的方法:
2. 呼叫iterator方法,取得Iterator型態的物件,該物件包含集合內所有的值
3. 使用while迴圈,迴圈的條件式內使用Iterator型態的物件呼叫hasNext(),迴圈會走訪Iterator的所
有元素。在while迴圈區塊內使用next(),每次執行回圈,就將走訪到的元素值取出。迴圈全部執行完畢
後,所有的值即取出完畢。
- 首頁
- JAVA 目錄
- JAVA WEB 目錄
- JAVA 其他未分類 目錄
- Grails目錄
- jQuery 目錄
- Apache 目錄
- JavaScript 目錄
- Spring + Hibernate 目錄
- Hibernate 目錄
- Linux 目錄
- 程式開發工具目錄
- MySQL 目錄
- PHP目錄
- C/C++ 目錄
- Google App Engine 目錄
- HTML5/CSS3
- 程式開發基本資訊
- Android
- Oracle 目錄
- Struts 目錄