IProject.java代码如下:
Project.java代码如下:
IProjectIterator.java代码如下:
ProjectIterator.java代码如下:
Boss.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