迭代器模式

  迭代器模式遍历集合的成熟模式,迭代器模式的关键是将遍历集合的任务交给一个叫做迭代器的对象,它的工作时遍历并选择序列中的对象,而客户端程序员不必知道或关心该集合序列底层的结构。

  迭代器模式的结构中包括四种角色。

  一、集合:一个接口,规定了具体集合需要实现的操作。

  二、具体集合:具体集合石实现了集合接口的一个实例,具体的集合按照一定的结构存储对象。具体集合应该有一个方法,该方法返回一个针对该集合的具体迭代器。

  三、迭代器:一个接口,规定了遍历具体集合的方法,美国服务器,比如next()方法。

  四、具体迭代器:实现了迭代器接口的类的实例。具体迭代器在实现迭代器接口所规定的遍历集合的方法时,比如next()方法,要保证首次调用将按着集合的数据结构找到该集合的一个对象,并且每当找到集合中的一个对象,立即根据该集合的存储结构得到待遍历的后继对象的引用,并保证一次调用next()方法可以遍历集合。

  下列应用程序中,使用了迭代器模式中所涉及的类。该应用程序模拟点钞,使用HashSet类的实例,即一个集合模拟保险箱HashSet类的实例调用iterator()方法返回一个迭代器,用该迭代器模拟点钞机,网站空间,而且在点钞过程中销毁假钞。

1 package com.iterator; java.util.Collection; 4 import java.util.HashSet; 5 import java.util.Iterator; Application { main(String[] args) { 9int n = 20;10int sum = 0;(int i=1;i<=n;i++){13if(i==n/2 || i==n/5 || i==n/6){14set.add(new RenMinMony(100,false));15}else{16set.add(new RenMinMony(100,true));17 }18 }19Iterator<RenMinMony> iterator = set.iterator();20int jia = 0, zhen = 0;21System.out.println(“保险箱共有”+set.size()+”张人民币!”);22int k = 0;23while(iterator.hasNext()){24RenMinMony money = iterator.next();25k++;26if(money.isTure() == false){27System.out.println(“第”+k+”张是假币,被销毁”);k++;30 }31 }32System.out.println(“保险箱现有真人民币”+set.size()+”张,总价值是:”);33iterator = set.iterator();34while(iterator.hasNext()){35RenMinMony money = iterator.next();36sum = sum + money.getValue();37 }38System.out.println(sum+”元”);39 }40 } RenMinMony{43int value; isTure;45public RenMinMony(int value,boolean isTure) {46this.value = value;47this.isTure = isTure;48 } getValue() {50return value;51 } isTure() {53return isTure;54 }55 },香港虚拟主机一个人的心胸宽阔,可以容不能容的事,可以赢难以赢的人。

迭代器模式

相关文章:

你感兴趣的文章:

标签云: