JAVA迭代器Iterator

來源:互聯網
上載者:User

標籤:nbsp   pre   工作   方法   rgs   方式   元素   blog   output   

  JAVA容器類類庫的用途為“儲存對象”,一種是Collection,一種就是Map。

  但不論是哪種容器類,都必須有某種方式可以插入元素,並將它們取回!例如List中可以使用add()插入元素,get()用來取出元素。

  但是容器類必須指定確切的類型,比如ArrayList<Interger>,但如果要使用Map/Set呢?如何提高代碼的複用率呢?

  迭代器是一個對象,它的工作是遍曆並選擇序列中的對象。

  1. 使用iterator()要求容器返回一個Iterator。Iterator將返回序列中第一個元素。
  2. 使用next()方法獲得序列下一個元素。
  3. 使用hasNext()檢查序列是否還有元素。
  4. 使用remove()將迭代器新近返回的元素刪除。

  

 1 public class MyIterator { 2     public static void main(String[] args) { 3         ArrayList<Integer> aList=new ArrayList<>(); 4         aList.add(2);aList.add(4);aList.add(1); 5         Iterator<Integer> it=aList.iterator(); 6         System.out.println("size="+aList.size());//輸出ArrayList原始大小 7         System.out.println(it.next());//利用迭代器輸出List第一個元素 8         it.remove();//刪除 9         System.out.println("size="+aList.size());//輸出刪除後List大小10         display(it);11         /*12          * 改為LinkedList13          * */14         System.out.println();15         LinkedList<Integer> ltd=new LinkedList<>();16         ltd.add(11);ltd.add(22);ltd.add(33);17         display(ltd.iterator());18         19     }20     public static void display(Iterator<Integer> its){21         while (its.hasNext()) {22             int n=its.next();23             System.out.print(n+" ");24         }25     }26 }

 

 

output:

size=32size=24 1 11 22 33 

  如的display()方法,不需要考慮容器的具體類型,是LinkedList還是ArrayList之類

    同時display()方法不包含任何有關它所遍曆的序列的類型資訊

 

 

JAVA迭代器Iterator

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.