Java學習之Iterator(迭代器)的一般用法


迭代器(Iterator)

  迭代器是一種設計模式,它是一個對象,它可以遍歷並選擇序列中的對象,而開發人員不需要了解該序列的底層結構。迭代器通常被稱為“輕量級”對象,因為創建它的代價小。

  Java中的Iterator功能比較簡單,並且只能單向移動:

  (1) 使用方法iterator()要求容器返回一個Iterator。第一次調用Iterator的next()方法時,它返回序列的第一個元素。注意:iterator()方法是java.lang.Iterable接口,被Collection繼承。

  (2) 使用next()獲得序列中的下一個元素。

  (3) 使用hasNext()檢查序列中是否還有元素。

  (4) 使用remove()將迭代器新返回的元素刪除。

  Iterator是Java迭代器最簡單的實現,為List設計的ListIterator具有更多的功能,它可以從兩個方向遍歷List,也可以從List中插入和刪除元素。

code:

 

 1  list l = new ArrayList();
 2   l.add("aa");
 3   l.add("bb");
 4   l.add("cc");
 5   for (Iterator iter = l.iterator(); iter.hasNext();) {
 6    String str = (String)iter.next();
 7    System.out.println(str);
 8   }
 9   /*迭代器用於while循環
10  Iterator iter = l.iterator();
11   while(iter.hasNext()){
12    String str = (String) iter.next();
13    System.out.println(str);
14   }
15   */

 

一個錯誤的示范:

 1 package com.test;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Iterator;
 5 import java.util.List;
 6 
 7 public class Iterator_test {
 8 
 9     public static void main(String[] args) {
10         List<String> lists = new ArrayList<String>();
11         lists.add("A");
12         lists.add("B");
13         lists.add("C");
14         lists.add("D");
15         lists.add("E");
16         lists.add("F");
17         lists.add("G");
18         lists.add("H");
19         Iterator it = lists.iterator();
20         while(it.hasNext()){
21             lists.remove(2);
22             System.out.println(it.next());
23         }
24     }
25 
26 }

即在迭代輸出的時候一定不能對集合進行刪除元素。

Iterator it = lists.iterator();
        while(it.hasNext()){
            lists.remove(2);
            System.out.println(it.next());
        }

這樣是錯誤的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM