当我们创建一个集合以后,可以直接使用system.out.println()来打印这个集合,但是,我们需要可以对每个元素进行操作,所以,这里需要使用迭代器来遍历集合

迭代器其实就是集合取出元素的方式

调用List对象的iterator()方法,得到Iterator对象,这个类是个接口类型,因此可以知道返回的是Iterator接口的子对象

while()循环,条件是,List对象的hasNext()方法,返回布尔值不为false

循环里面调用List对象的next()方法,可以得到每一个元素

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; public class IteratorDemo { /**
* @param args
*/
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("taoshihan1");
list.add("taoshihan2");
list.add("taoshihan3");
Iterator iterator=list.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
} }

PHP版:

php中最常用的迭代式foreach(),我们也可以自己实现一个迭代器

<?php
$list=array("taoshihan1","taoshihan2","taoshihan3");
/**
* 迭代器
* @author taoshihan
*/
class MyIterator implements Iterator{
public $index=0;
public $arr;
public function __construct($arr){
$this->arr=$arr;
}
public function current(){
return $this->arr[$this->index];
}
public function next(){
++$this->index;
}
public function key(){
return $this->index;
}
public function valid(){
return isset($this->arr[$this->index]);
}
public function rewind(){
$this->index=0;
}
}
$myIterator=new MyIterator($list);
$myIterator->rewind();//指针指向第一个
while($myIterator->valid()){//循环 当元素为真时
echo $myIterator->current();//打印当前元素
$myIterator->next();//指针往后移动一个 }

最新文章

  1. NGUI 3.0.7的新锚点系统设置不好就会造成显示错误的错觉
  2. MyEclipse10 离线图文安装SVN插件教程
  3. CSS clearfix
  4. Env:ctags和Taglist安装与配置
  5. python 使用 setup.py 方式安装及包的卸载
  6. 20144306《网络对抗》CAL_MSF基础运用
  7. 深入理解Java虚拟机 - 学习笔记 1
  8. 201521123034 《Java程序设计》第五周学习总结
  9. ●POJ 1556 The Doors(简单计算几何+最短路)
  10. JMeter命令模式下动态设置线程组和持续时间等动态传参
  11. DevExpress GridControl小结
  12. cache-fusion笔记
  13. struts2(五) s标签和国际化
  14. 定义function的层级
  15. 操作系统(Operating System,OS)
  16. mysql 5.7 json 字段类型查找、修改
  17. ABAP术语-URL
  18. QT uic rcc moc 命令行使用
  19. Markdown 简明语法手册 - 作业
  20. Visual Studio Xamarin中找不到iOS模拟器

热门文章

  1. soapui加载天气预报接口报错Characters larger than 4 bytes are not supported: byte 0xb1 implies a length of more than 4 byte的解决办法
  2. [flex] as3.0 实现基于air的简单浏览器
  3. python 对mongodb进行压力测试
  4. iOS学习笔记(4)——显示单组件选取器
  5. 在eclipse中,用maven创建web项目
  6. leetcode-896-单调数列
  7. Developer Friendly | 基础设施即代码的事实标准Terraform已支持京东云!
  8. windows server 2012 valid key
  9. ajax防止表单自动提交
  10. C# TCPClient简单示例