最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java設(shè)計模式之Iterator模式介紹

 更新時間:2013年07月16日 09:54:10   作者:  
所謂Iterator模式,即是Iterator為不同的容器提供一個統(tǒng)一的訪問方式。本文以java中的容器為例,模擬Iterator的原理。需要的朋友可以參考下
1.首先定義一個容器Collection接口.
復(fù)制代碼 代碼如下:

package com.njupt.zhb.learn.iterator;
public interface Collection {
 void add(Object o);
 int size();
 Iterator iterator();
}

2.定義一個Iterator迭代器的接口
復(fù)制代碼 代碼如下:

package com.njupt.zhb.learn.iterator;
public interface Iterator {
 Object next();
 boolean hasNext();
}

3.定義一個ArrayList,實現(xiàn)Collection接口,并寫一個實現(xiàn)了Iterator接口的內(nèi)部類。
復(fù)制代碼 代碼如下:

package com.njupt.zhb.learn.iterator;
import com.njupt.zhb.learn.iterator.Collection;
public class ArrayList implements Collection {
 Object[] objects = new Object[10];
 int index = 0;
 public void add(Object o) {
  if(index == objects.length) {
   Object[] newObjects = new Object[objects.length * 2];
   System.arraycopy(objects, 0, newObjects, 0, objects.length);
   objects = newObjects;
  }
  objects[index] = o;
  index ++;
 }

 public int size() {
  return index;
 }

 public Iterator iterator() {

  return new ArrayListIterator();
 }

 private class ArrayListIterator implements Iterator {
  private int currentIndex = 0;
  @Override
  public boolean hasNext() {
   if(currentIndex >= index) return false;
   else return true;
  }
  @Override
  public Object next() {
   Object o = objects[currentIndex];
   currentIndex ++;
   return o;
  }

 }
}

4.編寫測試程序TestMain
復(fù)制代碼 代碼如下:

package com.njupt.zhb.learn.iterator;
import com.njupt.zhb.learn.iterator.ArrayList;
public class TestMain {
 public static void main(String[] args) {
  Collection c = new ArrayList();
  for(int i=0; i<15; i++) {
   c.add("string "+i);
  }
  System.out.println(c.size());
  Iterator it = c.iterator();
  while(it.hasNext()) {
   Object o = it.next();
   System.out.println(o.toString() + " ");
  }
 }
}

運行結(jié)果:
復(fù)制代碼 代碼如下:

15
string 0
string 1
string 2
string 3
string 4
string 5
string 6
string 7
string 8
string 9
string 10
string 11
string 12
string 13
string 14

從以上可以看出,設(shè)計模式到處用到面向?qū)ο笾械亩鄳B(tài)。接口調(diào)用子類中的函數(shù)。點擊下載源代碼

相關(guān)文章

  • 詳解spring cloud ouath2中的資源服務(wù)器

    詳解spring cloud ouath2中的資源服務(wù)器

    這篇文章主要介紹了spring cloud ouath2中的資源服務(wù)器的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • MyBatis-plus批量插入的通用方法使用

    MyBatis-plus批量插入的通用方法使用

    mybatis-plus的IService接口默認(rèn)提供saveBatch批量插入,也是唯一一個默認(rèn)批量插入,在數(shù)據(jù)量不是很大的情況下可以直接使用,本文帶你詳細(xì)了解MyBatis-plus 批量插入的通用方法及使用方法,需要的朋友可以參考一下
    2023-04-04
  • Java中的synchronized關(guān)鍵字

    Java中的synchronized關(guān)鍵字

    這篇文章主要介紹了Java中的synchronized關(guān)鍵字,synchronized可以保證方法或代碼塊在運行時,同一時刻只有一個線程可以進(jìn)入到臨界區(qū)(互斥性),同時它還保證了共享變量的內(nèi)存可見性,下面我們就來看看你文章對synchronized鎖的介紹,需要的朋友也可以參考一下
    2021-12-12
  • java調(diào)用webService接口的代碼實現(xiàn)

    java調(diào)用webService接口的代碼實現(xiàn)

    本文主要介紹了java調(diào)用webService接口的代碼實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 淺談springMVC接收前端json數(shù)據(jù)的總結(jié)

    淺談springMVC接收前端json數(shù)據(jù)的總結(jié)

    下面小編就為大家分享一篇淺談springMVC接收前端json數(shù)據(jù)的總結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 用Java輕松讀取Word文檔內(nèi)容的常用方法

    用Java輕松讀取Word文檔內(nèi)容的常用方法

    這篇文章主要介紹了用Java輕松讀取Word文檔內(nèi)容的常用方法,對于doc格式使用Apache?POI庫中的HWPFDocument和WordExtractor類,對于docx格式使用XWPFDocument類,并通過遍歷段落和文本運行對象來提取文本內(nèi)容,需要的朋友可以參考下
    2025-03-03
  • spring security數(shù)據(jù)庫表結(jié)構(gòu)實例代碼

    spring security數(shù)據(jù)庫表結(jié)構(gòu)實例代碼

    這篇文章主要介紹了spring security數(shù)據(jù)庫表結(jié)構(gòu)實例代碼,需要的朋友可以參考下
    2017-09-09
  • vue+springboot讀取git的markdown文件并展示功能

    vue+springboot讀取git的markdown文件并展示功能

    Markdown-it 是一個用于解析和渲染 Markdown 標(biāo)記語言的 JavaScript 庫,使用 Markdown-it,你可以將 Markdown 文本解析為 HTML 輸出,并且可以根據(jù)需要添加功能、擴(kuò)展語法或修改解析行為,本文介紹vue+springboot讀取git的markdown文件并展示,感興趣的朋友一起看看吧
    2024-01-01
  • java判斷域名無法訪問自行訪問下一條

    java判斷域名無法訪問自行訪問下一條

    這篇文章主要為大家介紹了java實現(xiàn)判斷域名無法訪問的時候自行訪問下一條域名示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Java使用itext5實現(xiàn)生成多個PDF并合并

    Java使用itext5實現(xiàn)生成多個PDF并合并

    這篇文章主要為大家詳細(xì)介紹了Java如何使用itext5實現(xiàn)生成多個PDF并合并,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04

最新評論

张家川| 东方市| 克拉玛依市| 金堂县| 凤山市| 庆安县| 恩施市| 揭东县| 郎溪县| 调兵山市| 大埔区| 上饶县| 萍乡市| 郁南县| 科技| 原阳县| 延边| 文安县| 华池县| 柳州市| 漾濞| 胶州市| 宣城市| 碌曲县| 辛集市| 托克逊县| 旬阳县| 新泰市| 马尔康县| 凉城县| 宝丰县| 万年县| 武穴市| 五莲县| 兴海县| 万源市| 屏东县| 通化县| 土默特左旗| 东乌珠穆沁旗| 五指山市|