轻松掌握Java迭代器模式

作者:断了联系 时间:2023-11-29 03:15:22 

定义:用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。

特点:

    1、它支持以不同的方式遍历一个聚合对象。

    2、迭代器简化了聚合类。

    3、在同一个聚合上可以有多个遍历。

    4、在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码。

企业级开发和常用框架中的应用:java集合都实现了迭代器

具体实例:


public class Demo {

public static void main(String[] args) {
ActualContainer container = new ActualContainer();
for(int i = 5 ; i < 20 ; i++){
 container.add(i);
}

Iterator iterator = container.iterator();
while(iterator.hasNext()){
 System.out.println(iterator.next());
}
}
}

/**
* 迭代器接口,包含有常用的迭代器方法
*/
interface Iterator{
public boolean hasNext();

public Object next();
}

/**
* 容器接口:包含有获取迭代器的方法
*/
interface Container{
public Iterator iterator();
}

/**
* 具体实现类
* @author jiaoyuyu
*
*/
class ActualContainer implements Container{

private List<Object> list = new ArrayList<>();

public void add(Object obj){
this.list.add(obj);
}

public void remove(Object obj){
this.list.remove(obj);
}

public Object get(int index){
if(index <= (this.list.size() - 1)){
 return this.list.get(index);
}
return null;
}

public Iterator iterator() {
return new ActualIterator();
}

private class ActualIterator implements Iterator{

private int pointer = 0;

public boolean hasNext() {
 return this.pointer < list.size() ? true : false;
}

public Object next() {
 if(this.pointer < list.size()){
 Object obj = list.get(pointer);
 pointer++;
 return obj;
 }
 return null;
}

}
}

迭代器模式属于比较简单的模式,主要用于遍历集合一类的对象。

标签:Java,设计模式,迭代器模式
0
投稿

猜你喜欢

  • C# TSC打印二维码和条形码的实现方法

    2021-10-06 14:39:53
  • 详解Java中clone的写法

    2023-09-08 17:00:43
  • C#转换日期类型实例

    2023-07-16 21:01:19
  • SpringBoot整合Redis正确的实现分布式锁的示例代码

    2023-05-05 14:59:58
  • Spring中注解方式的异步请求

    2023-11-30 18:53:54
  • MyBatis JdbcType 与Oracle、MySql数据类型对应关系说明

    2023-08-23 02:23:06
  • 使用FeignClient设置动态Url

    2022-07-04 05:55:39
  • Android Spinner 组件的应用实例

    2022-07-12 04:50:13
  • C#中is和as用法实例分析

    2023-08-17 06:21:42
  • Android LayerDrawable超详细讲解

    2023-12-03 16:36:30
  • Jpa Specification如何实现and和or同时使用查询

    2023-10-17 20:49:38
  • Android布局技巧之合并布局

    2021-10-27 11:12:57
  • Android编程设计模式之原型模式实例详解

    2021-09-14 02:20:47
  • 获取JsonObject某一未知key的值操作

    2023-02-10 15:09:45
  • Springboot启动后执行方法小结

    2022-09-26 22:12:02
  • Android自定义SwipeRefreshLayout高仿微信朋友圈下拉刷新

    2023-01-06 08:51:34
  • springboot项目如何防止XSS攻击

    2021-10-17 10:03:02
  • java线程池参数位置导致的夺命故障宿主机打不开

    2021-09-29 23:27:34
  • C#8.0中的模式匹配

    2023-07-19 13:27:39
  • unity实现UI元素跟随3D物体

    2021-11-15 02:00:48
  • asp之家 软件编程 m.aspxhome.com