迭代器模式 刺骨的言语ヽ痛彻心扉 2022-05-30 08:22 302阅读 0赞 ### [迭代器模式][Link 1] ### > Provides a way to access the elements of an aggregate object without exposing its underlying represenation. 迭代器模式可以用以访问聚合对象中各个元素, 而又无须暴露该对象的内部表示。 ![这里写图片描述][70] ### 代码示例 ### > Iterator接口,泛型接口 public interface Iterator<T> { boolean hasNext(); T next(); } > 容器,泛型接口 public interface Container<T> { Iterator<T> iterator(); } > 具体容器,泛型类,这样我们可以存储遍历多种类型数据,比如在下面的代码中,我们存储了整型和类对象 public class SimpleContainer<T> implements Container<T> { public T[] names; private int size = 0; public SimpleContainer(int length) { names = (T[]) new Object[length]; } public void add(T t) { if (size < names.length) { names[size++] = t; } } @Override public Iterator iterator() { return new SimpleIterator(); } private class SimpleIterator<T> implements Iterator<T> { int index; @Override public boolean hasNext() { if (index < names.length) { return true; } return false; } @Override public T next() { if (this.hasNext()) { return (T) names[index++]; } return null; } } } > 测试多种类型的数据遍历 public class Main { public static void main(String[] args) { SimpleContainer<String> names = new SimpleContainer(8); for (int i = 0; i < 8; i++) { names.add(String.valueOf(i)); } for (Iterator iterator = names.iterator(); iterator.hasNext(); ) { System.out.println("Name : " + iterator.next()); } SimpleContainer<User> users = new SimpleContainer<>(8); for (int i = 0; i < 8; i++) { users.add(User.builder().id(i).name("user" + i).build()); } for (Iterator iterator = users.iterator(); iterator.hasNext(); ) { System.out.println(iterator.next()); } } } > User类定义,建造者模式 public class User { private int id; private String name; private User(int id, String name) { this.id = id; this.name = name; } @Override public String toString() { return String.format("id is %s, name is %s", id, name); } public static Builder builder() { return new Builder(); } static class Builder { private int id; private String name; public Builder id(int id) { this.id = id; return this; } public Builder name(String name) { this.name = name; return this; } public User build() { return new User(id, name); } } } [Link 1]: https://github.com/ypmc/design-pattern [70]: /images/20220530/4d97b01010124b2abf09fd4969f75cfb.png
相关 迭代器模式 一、前言 `相信相信的力量!` 从懵懂的少年,到拿起键盘,可以写一个HelloWorld。多数人在这并不会感觉有多难,也不会认为做不出来。因为这样的例子,有老师的指导、 ╰半夏微凉°/ 2022年10月16日 15:21/ 0 赞/ 27 阅读
相关 迭代器模式 转载:[迭代器模式 - C语言中文网][- C] 迭代器(Iterator)模式的定义:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。迭代器模式是 你的名字/ 2022年09月01日 13:47/ 0 赞/ 18 阅读
相关 迭代器模式 [迭代器模式][Link 1] > Provides a way to access the elements of an aggregate object withou 刺骨的言语ヽ痛彻心扉/ 2022年05月30日 08:22/ 0 赞/ 303 阅读
相关 迭代器模式 迭代器模式 一、概述 1. 提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。又称为:游标cursor模式 2. 聚合对象:存储数据 , 曾经终败给现在/ 2022年04月18日 06:26/ 0 赞/ 334 阅读
相关 迭代器模式 在软件开发中,可以存储多个成员对象的类称为聚合类(Aggregate Classes),对应的对象称为聚合对象。迭代器模式可以让客户端在无须了解聚合对象的内部结构的情况下,即可 深碍√TFBOYSˉ_/ 2021年10月15日 09:33/ 0 赞/ 444 阅读
相关 迭代器模式 用途 -------------------- 迭代器模式 (Iterator) 提供一种方法顺序访问一个聚合对象中各个元素,而又 不暴露该对象的内部表示。 迭代器模式 港控/mmm°/ 2021年09月26日 15:52/ 0 赞/ 549 阅读
相关 迭代器模式 迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部元素; 为遍历的对象提供一个如开始、下一个、是否结束、当前哪一项等统一的接口。 优点: 1、它 柔光的暖阳◎/ 2021年09月17日 02:10/ 0 赞/ 456 阅读
相关 迭代器模式 16.迭代器模式 ![70][] class Program { static void Main(string[] a 雨点打透心脏的1/2处/ 2021年09月17日 00:04/ 0 赞/ 541 阅读
相关 迭代器模式 一 点睛 定义 提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。 二 结构 迭代器模式主要包含以下角色: 抽象聚合(Aggre 系统管理员/ 2021年07月25日 01:50/ 0 赞/ 512 阅读
相关 迭代器模式 代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。 ... 小灰灰/ 2020年06月13日 05:39/ 0 赞/ 824 阅读
还没有评论,来说两句吧...