当前位置: 首页 > news >正文

沙河口网站建设万网官网

沙河口网站建设,万网官网,免费购物网站源码,网站宽度文章目录 Java 设计模式之迭代器模式概述UML代码实现Java的迭代器 Java 设计模式之迭代器模式 概述 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。 UML Iterator:迭代器接口&#xff…

文章目录

  • Java 设计模式之迭代器模式
    • 概述
    • UML
    • 代码实现
    • Java的迭代器

Java 设计模式之迭代器模式

概述

  • 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。

UML

在这里插入图片描述

  • Iterator:迭代器接口,定义遍历方法。
  • ConcreteIterator:具体迭代器类,实现迭代器接口,负责遍历聚合对象中的元素。
  • Aggregate:聚合接口,定义创建迭代器方法。
  • ConcreteAggregate:具体聚合类,实现聚合接口,负责存储数据和创建迭代器对象。

代码实现

定义迭代器接口:

public interface Iterator<T> {boolean hasNext();T next();
}

定义具体迭代器类:

public class BookIterator implements Iterator<String> {private ArrayList<String> bookList;private int position = 0;public BookIterator(ArrayList<String> bookList) {this.bookList = bookList;}@Overridepublic boolean hasNext() {return position < bookList.size();}@Overridepublic String next() {if (hasNext()) {return bookList.get(position++);}return null;}
}

定义聚合接口:

public interface Aggregate<T> {Iterator<T> createIterator();
}

定义具体聚合类:

public class BookCollection implements Aggregate<String> {private ArrayList<String> bookList = new ArrayList<>();public void addBook(final String book) {bookList.add(book);}@Overridepublic Iterator<String> createIterator() {return new BookIterator(bookList);}
}

使用:

public class Client {public static void main(String[] args) {BookCollection bookCollection = new BookCollection();bookCollection.addBook("西游记");bookCollection.addBook("水浒传");bookCollection.addBook("红楼梦");bookCollection.addBook("三国演义");Iterator<String> iterator = bookCollection.createIterator();while (iterator.hasNext()) {System.out.println(iterator.next());}}
}

输出:

西游记
水浒传
红楼梦
三国演义

Java的迭代器

Java 提供了迭代器的相关接口:

// java.util.Iterator.javapublic interface Iterator<E> {   boolean hasNext();E next();
}
// java.util.ListIterator.javapublic interface ListIterator<E> extends Iterator<E> {  boolean hasNext(); E next(); boolean hasPrevious(); E previous();
}
http://www.tj-hxxt.cn/news/65077.html

相关文章:

  • 网站内容更新最新国内新闻事件今天
  • 建站平台和网站开发的区别万网域名注册流程
  • wordpress头像怎么修改南宁网站seo大概多少钱
  • 三都网站建设超级外链吧
  • 爱网站排行注册公司网站
  • 百度如何投放广告东莞整站优化排名
  • 福州网站制作服务百度seo提高排名费用
  • 网站模板怎么使用教程怎么做链接推广产品
  • 做idc销售怎样建网站nba新闻最新消息滚动
  • 用java编程做网站长沙关键词优化新行情报价
  • 北京企业网站开发公司哪家好营销网站都有哪些
  • 广州货运网站建设百度关键词挖掘工具爱站网
  • 哈尔滨疫情数据成都纯手工seo
  • 济阳做网站多少钱电商网站网址
  • 东莞清溪镇做网站公司网站做成app
  • 建行网站会员是什么最近有新病毒出现吗
  • 建设中的网站备案期间做什京津冀协同发展
  • 西宁网站建设报价贴心君博bapp广告联盟
  • 网站布局策划案成都网站优化排名推广
  • 建设银行企业网银网站无法打开营销策略有哪些方法
  • 做外贸生意上国外网站网络推广运营外包公司
  • 北京网站制作案例广州网站优化排名
  • wordpress 默认头像关键词优化公司哪家推广
  • 优秀网站设计的标准四川疫情最新消息
  • 酒店网站建设策划书网站seo综合查询
  • 静态网页制作源代码seo网络培训学校
  • 单县网站建设什么是seo什么是sem
  • 福州网站seo推广优化百度贴吧广告投放
  • 昆明做网站建设公司百度竞价推广开户多少钱
  • 网站建设公司注册临沂seo顾问