java设计模式之Iterator模式 ——一个一个遍历
来源:互联网 发布:java编程实例1200例 编辑:程序博客网 时间:2024/05/29 19:34
1.Iterator模式
Iterator模式用于在数据集合中按照顺序遍历集合。
2.程序
Aggregate:表示集合的遍历
Iterator:遍历集合的接口
Book:表示书的类
BookShelf:表示书架的类
BookShelfterator:遍历书架的类
Main:测试程序行为的类
Aggregate.java//该接口声明方法只有一个,该方法会生成一个用于遍历集合的迭代器。
public interface Aggregate{ public abstract Iterator iterator();}
Iterator.java//该接口用于遍历集合中的元素,相当于循环变量
public interface Iterator{ public abstract boolean hasNext(); public abstract Object next();}
Book.java//表示书
public class Book{ private String name; public Book(String name){ this.name = name; } public String getName(){ return name; }}
BookShelf.java//表示书架的类,这个书架中定义了books字段。由于需要将该类作为集合进行处理,因此实现了Aggregate接口。
public class BookShelf implements Aggregate{ private Book[] books; private int last = 0; public BookShelf(int maxsize){ this.books = new Book[maxsize]; } public Book getBookAt(int index){ return books[index]; } public void appendBook(Book book){ this.books[last] = book; last++; } public int getLength(){ return new BookShelfIterator(this); }}
BooksShelfIterator.java//用于遍历书架的类
public class BooksShelfIterator implements Iterator{ private BookShelf bookShelf; private int index; public BookShelfIterator(BookShelf bookShelf){ this.bookShelf = bookShelf; this.index = 0; } public boolean hasNext(){ if(index < bookShelf.getLength()){ return true; }else{ return false; } } public Object next(){ Book book = bookShelf.getBookAt(index); index++; return book; }}
Main
public class Main{ public static void main(String[] args){ BookShelf bookShelf = new BookShelf(4); bookShelf.appendBook("A BOOK"); bookShelf.appendBook("B BOOK"); bookShelf.appendBook("C BOOK"); bookShelf.appendBook("D BOOK"); Iterator it = bookShelf.iterator(); while(it.hasNext()){ Book book = (Book)it.next(); System.out.println(book.getName()); } }}
通过bookShelf.iterator得到的it是用于遍历书架的Iterator.
3.Iterator模式中的登场角色
Iterator(迭代器):负责定义按顺序逐个遍历元素的接口
ConcreteIterator(具体迭代器):负责实现Iteratir角色所定义的接口
Aggregate(集合):负责定义创建Iterator角色的接口
ConcreteAggregate(具体集合):负责实现Aggregate角色所定义的接口
0 0
- java设计模式之Iterator模式 ——一个一个遍历
- Java学习之道:java设计模式—Iterator模式
- java设计模式—Iterator模式
- JAVA设计模式—迭代器模式(Iterator)
- 学习:java设计模式—Iterator模式
- java设计模式之Iterator
- Java设计模式之Iterator
- 设计模式入门读书笔记(1):Iterator 一个一个数一遍
- Java设计模式之Iterator模式
- java设计模式之迭代器模式iterator
- Java设计模式——Iterator迭代器
- Java设计模式—迭代器(Iterator)
- Java设计模式—迭代器(Iterator)
- Java设计模式—迭代器(Iterator)
- Java设计模式总结 — Iterator
- 设计模式之Iterator
- 设计模式之Iterator
- 设计模式之 iterator
- 作业一
- BNU 49048 神奇的身高【思维+LIS】
- Java从入门到精通_4 变量类型
- 关于缓存穿透
- C语言文件函数
- java设计模式之Iterator模式 ——一个一个遍历
- MySQL事务处理(总结)
- CentOS下yum安装五笔输入法
- JavaScript隐式转换
- Cookie 和 Session
- mybatis别名等
- POJ 2299 Ultra-QuickSort(树状数组)
- BNU 49103 贪心【二分+贪心】
- onGeolocationPermissionsShowPrompt webview使用内置浏览器定位的权限