`

设计模式----迭代器模式(Iterator)

 
阅读更多
IProject.java代码如下:
package com.designPattern.iterator;

public interface IProject {

	public void add(String name,int num,int cost);
	
	public String getProjectInfo();
	
	public IProjectIterator iterator();
}




Project.java代码如下:


package com.designPattern.iterator;

import java.util.ArrayList;

public class Project  implements IProject{
	
	private ArrayList<IProject> projectList = new ArrayList<IProject>();
	
	private String name = "";
	
	private int num = 0;
	
	private int cost = 0;
	
	public Project(){
		
	}
	
	public Project(String name,int num,int cost){
		this.name = name;
		this.num = num;
		this.cost = cost;
		
	}

	@Override
	public void add(String name, int num, int cost) {
		this.projectList.add(new Project(name,num,cost));
		
	}

	@Override
	public String getProjectInfo() {
		String info = "项目名称是:"+this.name+"\t项目人数为:"+this.num+"\t项目费用为:"+this.cost;
		return info;
	}

	@Override
	public IProjectIterator iterator() {
		
		return new ProjectIterator(this.projectList);
	}

}



IProjectIterator.java代码如下:
package com.designPattern.iterator;

import java.util.Iterator;

public interface IProjectIterator extends Iterator<IProject>{

}



ProjectIterator.java代码如下:
package com.designPattern.iterator;

import java.util.ArrayList;

public class ProjectIterator implements IProjectIterator{

	private ArrayList<IProject> projectList = new ArrayList<IProject>();
	
	private int currentItem = 0;
	
	public ProjectIterator(ArrayList<IProject> projectList){
		this.projectList = projectList;
	}
	
	@Override
	public boolean hasNext() {
		boolean bool = true;
		if(this.currentItem>=projectList.size()||this.projectList.get(this.currentItem)==null){
			bool = false ;
		}
			return bool;
	}

	@Override
	public IProject next() {
		return (IProject)this.projectList.get(this.currentItem++);
	}

	@Override
	public void remove() {
		
	}

}



Boss.java代码如下:
package com.designPattern.iterator;

/**
 * JDK1.2之后出现的Iterator
 * @author yangjianzhou
 *
 */
public class Boss {
	
	public static void main(String[] args) {
		
		IProject project = new Project();
		project.add("星球大战", 10, 100000);
		project.add("CS", 10, 100000);
		project.add("WOW", 10, 100000);
		project.add("地下城勇士", 10, 100000);
		
		for(int i=4;i<100;i++){
			project.add("第个"+i+"项目", 20, 100000);
		}
		
		IProjectIterator projectIterator = project.iterator();
		while(projectIterator.hasNext()){
			IProject p = projectIterator.next();
			System.out.println(p.getProjectInfo());
		}
		
	}

}



运行结果如下:
项目名称是:星球大战	项目人数为:10	项目费用为:100000
项目名称是:CS	项目人数为:10	项目费用为:100000
项目名称是:WOW	项目人数为:10	项目费用为:100000
项目名称是:地下城勇士	项目人数为:10	项目费用为:100000
项目名称是:第个4项目	项目人数为:20	项目费用为:100000
项目名称是:第个5项目	项目人数为:20	项目费用为:100000
项目名称是:第个6项目	项目人数为:20	项目费用为:100000
项目名称是:第个7项目	项目人数为:20	项目费用为:100000
项目名称是:第个8项目	项目人数为:20	项目费用为:100000
项目名称是:第个9项目	项目人数为:20	项目费用为:100000
分享到:
评论

相关推荐

    设计模式--迭代器模式java例子

    迭代器模式是一种行为设计模式,它允许我们顺序访问聚合对象的元素,而无需暴露其底层表示。在Java中,迭代器模式广泛应用于集合框架,如ArrayList、LinkedList等。本示例将深入探讨如何在Java中实现和使用迭代器...

    iterator-demo 迭代器设计模式demo

    迭代器设计模式是一种常用的行为设计模式,它提供了一种方法来顺序访问聚合对象的元素,而又不暴露其底层表示。这个“iterator-demo”应该是一个示例项目,用于演示如何在实际编程中应用迭代器模式。下面我们将深入...

    设计模式-迭代器模式(讲解及其实现代码)

    迭代器模式是一种行为设计模式,它提供了一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。这种模式允许我们遍历集合中的每个元素,同时保持集合本身抽象,不需了解其内部结构。 在Java、C#等面向对象语言...

    Android设计模式之--迭代器模式

    迭代器模式是软件设计模式中的一种行为模式,它在Android开发中被广泛应用,尤其是在处理集合对象的遍历操作时。这种模式提供了一种方法来顺序访问聚合对象的元素,而又不暴露其底层表示。在Java或Android编程中,...

    设计模式(C#)之迭代器模式(Iterator Pattern)

    迭代器模式是软件设计模式中的一种行为模式,它在C#等面向对象编程语言中有着广泛的应用。这个模式的主要目标是允许用户遍历一个聚合对象(如数组、集合或列表)的所有元素,而无需了解底层的实现细节。下面将详细...

    java常用设计模式-迭代器模式

    Java 迭代器模式是一种行为设计模式,它提供了一种访问集合对象元素的方法,而不需要暴露该对象的内部表示。该模式适用于需要遍历集合对象的场景,例如数组、列表、树等。 迭代器模式的主要优点是: 1. 避免了集合...

    java设计模式--迭代器设计模式.docx

    迭代器模式是软件设计模式中的一种行为模式,其主要目的是为了在不暴露聚合对象内部结构的情况下,提供一种顺序访问聚合对象中各个元素的方式。在Java中,迭代器模式被广泛应用于集合类,如ArrayList、LinkedList等...

    设计模式-迭代器模式

    迭代器模式是一种软件设计模式,它提供了一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。在iOS开发中,迭代器模式同样适用,可以帮助开发者在不暴露内部数据结构的情况下遍历集合对象。下面我们将深入...

    (行为型模式) Iterator 迭代器模式

    C#面向对象设计模式 (行为型模式) Iterator 迭代器模式 视频讲座下载

    设计模式之迭代器模式(Iterator)

    迭代器模式是软件设计模式中的一种行为模式,它在编程中扮演着重要的角色,尤其是在处理集合数据时。迭代器模式的核心思想是提供一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。这种模式使得用户可以在不...

    【Java设计模式】(1)迭代器模式Iterator

    迭代器模式(Iterator Pattern)是Java设计模式中的行为模式之一,它提供了一种方法来顺序访问聚合对象的元素,而又不暴露其底层表示。在Java中,迭代器模式被广泛应用于集合类,如ArrayList、LinkedList等,通过...

    设计模式专题之(二十三)迭代器模式---设计模式迭代器模式示例代码(python--c++)

    迭代器模式是一种行为设计模式,它提供了一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。在本文中,我们将深入探讨迭代器模式的概念,并通过Python和C++两种编程语言展示其实现。 首先,理解迭代器模式...

    IteratorPattern 迭代设计模式

    迭代器模式(IteratorPattern)是设计模式中的一种行为模式,它提供了一种顺序访问聚合对象元素的方法,同时又不暴露其底层表示。这种模式允许我们遍历集合对象的元素,而无需暴露其内部结构。在Java、C#等面向对象...

    23钟设计模式之迭代器模式模式

    迭代器模式是23种设计模式之一,属于行为型模式。它提供了一种访问聚合对象元素的方式,而不需要暴露该对象的内部实现。迭代器模式的主要目的是让开发者能够轻松地遍历聚合对象中的元素,而不需要关心对象的内部实现...

    23个设计模式之一的迭代器模式-极客学院-java-课件代码,

    迭代器模式是软件设计模式中的行为模式之一,它提供了一种方法来顺序访问聚合对象的元素,而又不暴露其底层表示。在Java编程语言中,迭代器模式的应用尤为广泛,尤其是在处理集合类如ArrayList、LinkedList等时。这...

    设计模式C++学习之迭代器模式(Iterator)

    迭代器模式是软件设计模式中的行为模式之一,它在C++编程中有着广泛的应用。这个模式提供了一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。通过迭代器,用户可以遍历集合中的所有元素,而无需知道如何...

    设计模式之迭代器模式

    迭代器模式是软件设计模式中的一种行为模式,它允许我们顺序访问聚合对象的元素,而无需暴露其底层表示。在编程中,特别是面向对象编程中,迭代器模式扮演着非常重要的角色,它提供了统一的接口来遍历各种集合类型,...

    Iterator迭代器讲解

    ### Iterator迭代器详解 #### 一、Iterator简介与概念 在Java编程语言中,`Iterator`接口是一个重要的组件,...无论是从设计模式的角度还是实际应用的角度来看,掌握`Iterator`的工作原理和使用方法都是非常重要的。

Global site tag (gtag.js) - Google Analytics