2011年12月28日 星期三

[JAVA] 使用iterator取出集合內所有的值

凡是有實作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());
  }
 }
}

執行結果:banana
        tomato
        apple
綜合以上的介紹,我們整理使用iterator取出集合內所有的值的方法:

1. 該集合類別/介面需要有iterator方法(透過實作/繼承java.lang.Iterable而來)
2. 呼叫iterator方法,取得Iterator型態的物件,該物件包含集合內所有的值
3. 使用while迴圈,迴圈的條件式內使用Iterator型態的物件呼叫hasNext(),迴圈會走訪Iterator的所
   有元素。在while迴圈區塊內使用next(),每次執行回圈,就將走訪到的元素值取出。迴圈全部執行完畢
   後,所有的值即取出完畢。













其它文章

沒有留言:

張貼留言

標籤

Oracle (150) Oracle DB (144) Oracle_DB (143) Oracle SQL (135) JAVA (84) css-基本類 (65) MySQL (59) CSS Selector (58) jQuery (49) JavaScript-基本類 (39) Spring Boot (38) JavaScript (37) JavaScript HTML DOM (37) JavaScript-HTML_DOM (36) CSS3 (30) JAVA-基本類 (28) jQuery UI (27) Apache (23) Oracle GROUP BY (20) datepicker (20) Android (18) Oracle Date (17) c (17) JAVA-lang套件 (16) Linux (16) Oracle Sub Query (16) Spring-基本類 (16) jQuery-基本類 (16) MySQL-進階系列教學 (15) Android基本類 (14) Grails (14) Oracle join (14) SQLite (13) Spring (13) WIN7-基本類 (13) grails-基本類 (13) linux cent os (13) CKEditor (12) JAVA-流程控制類 (12) JAVA_Spring (12) PHP (11) Spring MVC (11) MySQL-基本系列教學 (10) Notepad (10) Notepad++ (10) SQLite for java (10) Windows (10) c/c++ (10) eclipse (9) jQuery-Selector (9) sqldeveloper (9) DB_Toad (8) JAVA_IDE_Eclipse (8) JavaScript-String類 (8) MySQL DB Toad (8) MySQL-DATE相關 (8) MySQL-函式相關 (8) Spring Bean (8) Android Studio (7) HTML5 (7) Hibernate (7) JAVA-OCWCD (7) JavaScript-陣列類 (7) Docker (6) JAVA-程式分享 (6) JAVA.util套件 (6) JavaScript-數學類 (6) MinGw (6) MySQL-其它類 (6) Servlet (6) centos (6) Apache_Tomcat (5) Apache套件_POI (5) CSS (5) JavaScript-Date物件 (5) JavaScript-其它類 (5) PostgreSQL (5) httpd (5) log4j (5) 基本資訊 (5) 開發工具 (5) CSS Properties (4) Dev-C++ (4) IntelliJ IDEA (4) Oracle DDL (4) Sublime (4) TortoiseSVN (4) apache_Maven (4) Android NDK (3) Eclipse IDE for C/C++ (3) Hibernate-基本類 (3) JAVA-問題 (3) JAVA-綀習分享 (3) JVM (3) Linux 指令 (3) Proxy Server (3) Spring Mobile (3) Spring web (3) Squid (3) VirtualBox (3) maven (3) zk (3) 生活其它 (3) Bootstrap (2) Filter (2) JAVA_IO (2) JAVA_其它_itext套件 (2) JBoss-問題 (2) JSP (2) Jboss (2) Listener (2) MySQL-語法快速查詢 (2) Spring AOP (2) Spring Batch (2) Spring Boot Actuator (2) Spring i18n (2) Subversive (2) Tomcat 8 (2) UML (2) WebJars (2) WinMerge (2) c++ (2) c語言綀習題 (2) jQuery Mobile (2) jQuery-事件處理 (2) jQuery-套件類 (2) putty (2) svn (2) weblogic (2) Apache_JMeter (1) Apache套件_BeanUtils (1) Apache套件_StringUtils (1) Base64 (1) Google API (1) HTML5-基本類 (1) Heap (1) JAVA 7 (1) JAVA SE 、JAVA EE、JAVA ME (1) JAVA 日期 (1) JAVA-OCJP (1) JAVA-WEB (1) JAVA_IDE (1) JAVA其它 (1) JBoss Server (1) JDK (1) JMX (1) JRE (1) Java RMI (1) Java String (1) Joda Time (1) Linux_其它 (1) MySQL教學 (1) Oracle_VirtualBox (1) SQL Server (1) SWT (1) Session (1) Stack (1) Struts 2 (1) Tool (1) ZK Studio (1) csv (1) grails-其它類 (1) jQuery-進階 (1) java mail (1) java web (1) java8 (1) jsoup (1) mockmvc (1) modules (1) tomcat (1) win10 (1) 其它類 (1) 圖片工具 (1) 模擬器 (1) 讀書分享 (1) 開發資訊 (1)

精選文章

初學 Java 的 HelloWorld 程式

撰寫一個JAVA程式 public class HelloWorld{ public static void main(String[ ] args){ System.out.println("我第一支Java程式!!"); } } ...