欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java編程Iterator迭代器設計原理及實現代碼示例

 更新時間:2017年10月24日 11:51:42   作者:不知不覺已變淡  
這篇文章主要介紹了Java編程Iterator迭代器設計原理及實現代碼示例,具有一定參考價值,需要的朋友可以了解下。

我們知道迭代器(Iterator)是一種對象,它能夠用來遍歷標準模板庫容器中的部分或全部元素。那么Iterator迭代器的設計原理是什么呢?迭代器問什么定義了一個借口,而不是一個類呢?

我們假設迭代器迭代數據的功能定義為了一個類,那么,會有這樣的問題。不同的集合,由于數據結構不一樣,所以他們的存儲方式也是不一樣的。也就是說,迭代器獲取的時候,獲取的方式是變化的,也就是不固定的。所以把這種方式定義為具體的實現是不合理的。

無論何種集合,他們肯定都有獲取的功能,而且不知道什么時候就沒有數據了。所有他們也會有判斷功能。于是,就把判斷和獲取功能抽取出來,定義在接口中。這樣的話,將來無論是哪種集合在遍歷的時候,它們自己只要去實現迭代器接口即可。

那具體怎么實現的呢?集合迭代器是以內部類的方式實現的。簡單看一段代碼。

package me.socketthread;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class IteratorDemo { 
  public static void main(String[] args) { 
    //創(chuàng)建對象 
    Collection c = new ArrayList(); 
     
    //添加元素 
    c.add("hello"); 
    c.add("world"); 
    c.add("helloworld"); 
     
     
    //遍歷集合對象,通過集合對象調用方法c.iterator()得到迭代器對象Iterator 
    Iterator it = c.iterator(); //返回的是Iterator的子類對象,多態(tài)。 
     
    while (it.hasNext()) {    //檢查序列中是否還有元素 
      //System.out.println(it.next()); 
      String s =(String)it.next();//獲得序列中的下一個元素 
      System.out.println(s); 
    } 
     
  } 
} 

輸出

hello
world
helloworld

總結

以上就是本文關于Java編程Iterator迭代器設計原理及實現代碼示例的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Java編程利用socket多線程訪問服務器文件代碼示例、Java多線程編程實現socket通信示例代碼等,有什么問題,可以留言,歡迎大家交流討論。感謝朋友們對腳本之家網站的支持!

相關文章

  • 如何將char類型的數字字符轉換成int類型問題

    如何將char類型的數字字符轉換成int類型問題

    這篇文章主要介紹了如何將char類型的數字字符轉換成int類型問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • JavaSE API實現生成隨機數的2種方法(Random類和Math類的Random方法)

    JavaSE API實現生成隨機數的2種方法(Random類和Math類的Random方法)

    本文主要介紹了JavaSE API實現生成隨機數的2種方法,主要包括Random類和Math類的random方法都可以用來生成隨機數,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Java中的base64編碼器

    Java中的base64編碼器

    這篇文章介紹了Java中的base64編碼器,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 微服務分布式架構實現日志鏈路跟蹤的方法

    微服務分布式架構實現日志鏈路跟蹤的方法

    在現有的系統中,由于大量的其他用戶/其他線程的日志也一起輸出穿行其中導致很難篩選出指定請求的全部相關日志。那我們如何來處理呢?帶著這個問題一起通過本文學習下吧
    2021-08-08
  • java中幾種常見的排序算法總結

    java中幾種常見的排序算法總結

    大家好,本篇文章主要講的是java中幾種常見的排序算法總結,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • SpringMVC JSON數據交互實現過程解析

    SpringMVC JSON數據交互實現過程解析

    這篇文章主要介紹了SpringMVC JSON數據交互實現過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • Java中增強for循環(huán)的實現原理和坑詳解

    Java中增強for循環(huán)的實現原理和坑詳解

    增強的for循環(huán)是在傳統的for循環(huán)中增加的強大的迭代功能的循環(huán),是在jdk1.5之后提出來的。下面這篇文章主要給大家介紹了關于Java中增強for循環(huán)的實現原理和坑的相關資料,需要的朋友可以參考下
    2018-04-04
  • Mybatis如何配置連接池

    Mybatis如何配置連接池

    本文通過實例代碼給大家詳細介紹了mybatis配置連接池的方法,非常不錯,具有參考借鑒價值,感興趣的朋友參考下吧
    2016-12-12
  • java集合求和最大值最小值示例分享

    java集合求和最大值最小值示例分享

    這篇文章主要介紹了java集合求和最大值最小值示例
    2014-01-01
  • GateWay路由規(guī)則與動態(tài)路由詳細介紹

    GateWay路由規(guī)則與動態(tài)路由詳細介紹

    這篇文章主要介紹了GateWay路由規(guī)則與GateWay動態(tài)路由,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論