国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java設計模式之Iterator模式介紹

2019-11-26 16:02:04
字體:
來源:轉載
供稿:網友
1.首先定義一個容器Collection接口.
復制代碼 代碼如下:

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

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

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

3.定義一個ArrayList,實現Collection接口,并寫一個實現了Iterator接口的內部類。
復制代碼 代碼如下:

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
復制代碼 代碼如下:

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() + " ");
  }
 }
}

運行結果:
復制代碼 代碼如下:

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

從以上可以看出,設計模式到處用到面向對象中的多態。接口調用子類中的函數。點擊下載源代碼
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玛纳斯县| 兖州市| 乌拉特前旗| 永仁县| 黄山市| 冀州市| 扎鲁特旗| 平度市| 炉霍县| 万全县| 抚远县| 钦州市| 潼南县| 郓城县| 沈丘县| 兴业县| 九江县| 富川| 黄平县| 广东省| 玛曲县| 鄄城县| 神木县| 濉溪县| 渝北区| 中江县| 万源市| 兴海县| 昌宁县| 梓潼县| 商城县| 瑞金市| 蒙城县| 鹤山市| 三门峡市| 循化| 九龙坡区| 恩施市| 洛隆县| 关岭| 禄劝|