迭代器模式:将遍历集合的任务交给一个叫做迭代器的对象,它的工作时遍历并选择序列中的对象,而客户端程序员不必知道或关心该集合序列底层的结构*/
2017-07-31 13:52
483 查看
<!-- 迭代器:是遍历集合的成熟模式-->
<?php
/*
迭代器模式:将遍历集合的任务交给一个叫做迭代器的对象,它的工作时遍历并选择序列中的对象,而客户端程序员不必知道或关心该集合序列底层的结构*/
interface Iterators{
public function First();
public function Pre();
public function Next();
public function End();
public function CurrentItem();
}
?>
<?php
require_once "Iterators.php";
class Iteratorobj implements Iterators{
public $objects;
public $current = 0;
public function __construct($objects)
{
$this->objects = $objects;
}
public function First()
{
return $this->objects[0];
}
public function Pre()
{
$this->current--;
if($this->current < 0 ){
return false;
}else{
return $this->objects[$this->current];
}
}
public function Next()
{
$this->current++;
if($this->current <= count($this->objects))
{
return $this->objects[$this->current];
}
return false;
}
public function End()
{
return $this->objects[count($this->objects)-1];
}
public function CurrentItem()
{
return $this->objects[$this->current];
}
}
?>
<?php
require_once "Iteratorobj.php";
$arr = array('hello',"world","say");
$obj = new Iteratorobj($arr);
echo $obj->First()."<br>";
echo $obj->End()."<br>";
echo $obj->Next()."<br>";
?>
<?php
/*
迭代器模式:将遍历集合的任务交给一个叫做迭代器的对象,它的工作时遍历并选择序列中的对象,而客户端程序员不必知道或关心该集合序列底层的结构*/
interface Iterators{
public function First();
public function Pre();
public function Next();
public function End();
public function CurrentItem();
}
?>
<?php
require_once "Iterators.php";
class Iteratorobj implements Iterators{
public $objects;
public $current = 0;
public function __construct($objects)
{
$this->objects = $objects;
}
public function First()
{
return $this->objects[0];
}
public function Pre()
{
$this->current--;
if($this->current < 0 ){
return false;
}else{
return $this->objects[$this->current];
}
}
public function Next()
{
$this->current++;
if($this->current <= count($this->objects))
{
return $this->objects[$this->current];
}
return false;
}
public function End()
{
return $this->objects[count($this->objects)-1];
}
public function CurrentItem()
{
return $this->objects[$this->current];
}
}
?>
<?php
require_once "Iteratorobj.php";
$arr = array('hello',"world","say");
$obj = new Iteratorobj($arr);
echo $obj->First()."<br>";
echo $obj->End()."<br>";
echo $obj->Next()."<br>";
?>
相关文章推荐
- 最近做了一个c/s结构的软件客户端架构工作,其对象图是基于本文对象图做的(包括包结构)求围观,指点。
- 前端攻城狮学习笔记一:实现一个遍历数组或对象里所有成员的迭代器
- 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
- 每天一道LeetCode-----二叉树逐层遍历,每一层存在一个序列中,返回所有序列集合
- Mybatis的Mapper.xml文件中如何遍历一个对象的集合属性
- 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZde
- 集合list里存储list,要遍历最底层list的对象元素的遍历方法
- 使用管道流和多线程完成以下任务要求: 一个线程对象t1 会从控制台中不停的读取信息,读到之后把数据交给管道输出流,把数据写到管道里面 ,另一个线程对象t2 不停的使用管道输入流从管道
- Java基础知识强化之集合框架笔记08:Collection集合自定义对象并遍历案例(使用迭代器)
- [软件人生]程序员与语言选择——给一个刚毕业的大学生工作方向的分析对话
- 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZde
- JAVA之旅(三)——数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想
- JAVA之旅(三)——数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想
- Comet4J(Comet for Java)是一个纯粹基于AJAX(XMLHTTPRequest)的服务器推送框架,消息以JSON方式传递,具备长轮询、长连接、自动选择三种工作模式。
- Redis 一、数据结构与对象--五大数据类型的底层结构实现
- 题型:编写一段JS代码提取URL中的各个GET参数,并按Key_Value的形式返回到一个对象中(如:Json结构)
- OC视频3.8,3.9(集合对象之数组的常用方法)3.10(数组的遍历)
- 学院有意找你开发一个“毕业论文选题管理”的软件,在正式承接本项目的开发任务之前,你认为需要做哪些前期准备工作。
- 则自一个女程序员第十年工作总结(作者:clear_zero)
- 写在冬日的第一天--一个女程序员第六年工作总结