`

Iterator 设计模式

阅读更多

Iterator模式:可以为容器或其子容器实现不同的迭代方法或多个迭代方法。

 

package com;

import java.util.Iterator;

public class Book{
 private String bookName;
 private String author;
 public String getBookName() {
  return bookName;
 }
 public void setBookName(String bookName) {
  this.bookName = bookName;
 }
 public String getAuthor() {
  return author;
 }
 public void setAuthor(String author) {
  this.author = author;
 }
}

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class BookBox implements Iterable{
 private List bookBox=new ArrayList();

 public Iterator iterator() {
  return new BookIterator();
 }
 
 public void add(Book book){
  bookBox.add(book);
 }
 private  class BookIterator implements Iterator{
  private int index;
  
  public boolean hasNext() {
   if(index<bookBox.size()){
    return true;
   }
   else{
    return false;
   }
  }

  public Object next() {
   return bookBox.get(index++);
  }

  public void remove() {
   
  }
  
 }
}

public class Test {

 public static void main(String[] args) {
  BookBox box=new BookBox();
  
  Book b1=new Book();
  b1.setBookName("book one");
  Book b2=new Book();
  b2.setBookName("book two");
  Book b3=new Book();
  b3.setBookName("book three");
  Book b4=new Book();
  b4.setBookName("book foure");
  
  box.add(b1);
  box.add(b2);
  box.add(b3);
  box.add(b4);
  
  Iterator it=box.iterator();
  while(it.hasNext()){
   Book b=(Book)it.next();
   System.out.println("BookName: "+b.getBookName());
  }
 }

}

分享到:
评论

相关推荐

    模拟java ArrayList Iterator

    这个资源的目的是通过模拟Java ArrayList的Iterator实现,帮助理解Iterator设计模式。 首先,我们来详细解释一下ArrayList和Iterator的概念。ArrayList是一个可变大小的数组,它允许我们在任何位置插入和删除元素。...

    Java设计模式之Iterator模式

    参考:马士兵 Java设计模式 Iterator 1.首先定义一个容器Collection接口. 2.定义一个Iterator迭代器的接口 3.定义一个ArrayList,实现Collection接口,并写一个实现了Iterator接口的内部类。 4.编写测试程序TestMain...

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

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

    Java源码分析:深入探讨Iterator模式

    为了遍历这些容器中的元素,Java引入了迭代器模式(Iterator Pattern),这是一种常用的设计模式,它提供了一种访问聚合对象的方法,而无需暴露其内部表示。本文将详细解析Iterator模式在Java中的实现原理,并通过...

    google interview problem of iterator

    Iterator设计模式提供了一种访问集合内部元素的方式,而不暴露其底层表示。这对于迭代操作非常有用。 - **`next()` 方法**:返回集合中的下一个元素。 - **`hasNext()` 方法**:判断是否还有下一个元素。 #### ...

    IteratorPattern 迭代设计模式

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

    24种设计模式以及混合设计模式

    设计模式是软件工程中的一种重要思想,它是在特定情境下,为解决常见问题而形成的一套最佳实践。在本文中,我们将深入探讨24种设计模式,并结合混合设计模式的概念,以及它们在实际项目中的应用案例。 首先,设计...

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

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

    JavaScript设计模式与开发实践.pdf

    由浅入深地讲解了16个设计模式,包括 singleton模式、Factory模式、Abstract Factory模式、Builder模式、Prototype模式、Adapter模式、Bridge模式、Composite模式、Decorator模式、Flyweight模式、Proxy模式、Chain ...

    C++ Iterator模式

    迭代器模式是软件设计模式中的一种行为模式,它在C++中的应用十分广泛。这个模式的主要目的是提供一种方法来顺序访问聚合对象的元素,而无需暴露其底层表示。通过使用迭代器模式,用户可以遍历任何聚合对象,而无需...

    习题课3可复用与可维护构造技术1

    【Iterator 设计模式】停车场需要提供遍历所有车辆的功能,可以使用迭代器设计模式。扩展ParkingField,使其具备返回Iterator的能力,允许客户端按照停车位编号顺序遍历所有车辆。 综上所述,本题设计的系统需要...

    23种面向对象设计模式

    面向对象设计模式是软件开发中的一种重要思想,它通过总结和提炼在软件设计过程中常见的问题和解决方案,形成了可复用的设计规范。标题提到的“23种面向对象设计模式”涵盖了设计模式的主要分类,这些模式在Java、...

    C#面向对象设计模式纵横谈\18 行为型模式Iterator迭代器模式.zip

    在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要资源分。敬请期待。 这是第18节:行为型...

    设计模式之_Iterator_00_源码

    迭代器(Iterator)设计模式是软件开发中的一种行为设计模式,它允许我们顺序访问聚合对象的元素,而无需暴露其底层表示。这个模式的核心在于提供一种方法顺序访问聚合对象的各个元素,而又不暴露其底层的数据结构。...

    Head.First设计模式_PDF

    第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton、Command、Adapter、Facade、Template Method、iterator、Composite、State、proxy。最后三章比较...

    设计模式那点事

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决问题的可重用解决方案。《设计模式那点事》这本书的PPT为我们提供了一种深入理解和学习设计模式的途径。在这里,我们将深入探讨设计模式的核心概念、...

    您的设计模式.pdf。

    "设计模式" 在软件开发中,设计模式是一种解决特定问题的通用方法。它可以帮助开发者编写更加灵活、可维护、可扩展的代码。本书《您的设计模式》对设计模式进行了详细的讲解,涵盖了策略模式、代理模式、单例模式、...

    《Java设计模式》课后答案-刘伟.rar

    行为型设计模式如策略(Strategy)、模板方法(Template Method)、观察者(Observer)、命令(Command)、迭代器(Iterator)、访问者(Visitor)、状态(State)、职责链(Chain of Responsibility)、解释器...

    设计模式精解-GoF 23种设计模式解析附C++.pdf

    ### 设计模式精解——GoF 23种设计模式解析及C++实现 #### 0. 引言 设计模式作为面向对象编程的核心组成部分,是软件开发者在长期实践中总结出来的最佳实践。通过深入理解这些设计模式,我们可以更好地进行面向...

Global site tag (gtag.js) - Google Analytics