package com;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
class Peop {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Hello {
public static void main(String agr[]) {
Peop p = new Peop();
p.setName("yangxin");
Peop p2 = new Peop();
p2.setName("zhuxiaofei");
//把2个对象实例放入ArrayList容器中。
List<Peop> list = new ArrayList<Peop>();
list.add(p);
list.add(p2);
//开始使用foreach循环打印,for (Peop x : list) ,这条语句定义了一个Peop对象的实例x,继而将每一个list元素赋值给x。
for (Peop x : list) {
System.out.println(x.getName());
}
System.out.println();
//开始使用Iterator迭代器开始打印
Iterator<Peop> iter = list.iterator();
//使用Iterator接口中的hasNext()判断iter是否有值
while(iter.hasNext()){
//用Iterator接口中的next()方法取出iter里的下一个值
Peop str = (Peop)iter.next();
System.out.println(str.getName());
}
}
}
输出:
yangxin
zhuxiaofei
yangxin
zhuxiaofei
这里看见了,使用foreach比使用Iterator迭代器简单,方便许多,但是使用foreach跟使用Iterator迭代器有很明显的略势,foreach在迭代时很难进行对容器的操作,所以一般用于打印(显示),而Iterator迭代器可以方便的操作容器内的元素。
分享到:
相关推荐
Iterator可以使我们不需要初始化集合,以及索引的变量,而是使用迭代器对象的 next 方法,返回集合的下一项的值,偏向程序化。 迭代器是带有特殊接口的对象。含有一个next()方法,调用返回一个包含两个属性的对象,...
Iterator 对象称为迭代器 设计模式的一种 )),主要用于遍历 Collection 集合中的元素。迭代器提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。迭代器模式,就是为容器而生。 ...
集合迭代器这个Mongo.Collection实例添加了一个方法,该方法返回一个。例子 Animals = new Mongo . Collection ( 'animals' ) ;'ant bat cat dog elk fox gnu hog' . split ( ' ' ) . forEach ( function ( animal )...
迭代器模式(Iterator):提供一种方法顺序一个聚合对象中各个元素,而又不暴露该对象内部表示。 迭代器的几个特点是: 1.访问一个聚合对象的内容而无需暴露它的内部表示。 2.为遍历不同的集合结构提供一个统一的接口...
scheb/实现迭代器 该库为符合 PSR-4 的文件夹结构创建迭代器,并在其中搜索接口/类的所有实现/扩展。 抽象实现和类本身将被忽略。 用法 $ iterator = new \ Scheb \ ImplementationIterator ( "src/" , "Root\...
使对象可以像数组一样进行foreach循环,要求属性必须是私有。 不使用迭代器模式很难实现,先看实现的代码: sample.php <?php class Sample implements Iterator{ private $_arr; public function __construct...
本文实例讲述了php和C#的yield迭代器实现方法对比。...IEnumerable表示一个类可以迭代,也就是可以用foreach遍历,IEnumerator是真正的迭代器实现,IEnumerable和IEnumerator一个是使用迭代器的接口,一个是实现迭
迭代器实际是一个实现了Iterator的类,可以用foreach进行遍历。 例如: <?php class Sample implements Iterator{ private $curIndex=0; private $items=null; public function __construct($_items) { $...
2.Iterator迭代器接口 接口摘要: Iterator extends Traversable { //返回当前索引游标指向的元素 abstract public mixed current(void) //返回当前索引游标指向的元素的键名 abstract public scalar key(vo
for-of工作原理:迭代器有一个next方法,for循环会不断调用这个iterator.next方法来获取下一个值,直到返回值中的 done属性为true的时候结束循环。 ① 在ES6之前 var arr = [1,2,3,4,5,6]; arr.name = 'a'; for (var...
掌握List集合、Set集合、Map集合的使用以及Iterator迭代器和foreach循环的使用 了解常用的集合类 熟悉泛型的使用
yield生成器是php5.5之后出现的,yield提供了一种更容易的方法来实现简单的迭代对象,相比较定义类实现 Iterator 接口的方式,性能开销和复杂性大大降低。 yield生成器允许你 在 foreach 代码块中写代码来迭代一组...
在PHP中有好几个预定义的接口,比较常用的四个接口(IteratorAggregate(聚合式aggregate迭代器Iterator)、Countable、ArrayAccess、...这个接口实现了一个功能——创建外部迭代器,具体怎么理解呢,当我们使用foreach
为什么ArrayList,Vector等都不支持循环中remove1 Vector 直接删除2 Vector 遍历元素2.1 for循环遍历2.2 迭代器循环2.3 任意方向遍历2.4 Vector的foreach3. Vector迭代器删除4. Vector不使用迭代器删除元素5. Vector...
从命令行使用: composer require hanneskod/classtools使用迭代器使用并扫描文件中的php类,接口和特征。进入班级地图getClassMap()返回类名称到对象的映射。 $ finder = new Symfony \ Component \ Finder \ ...
生成器提供了一种更容易的方法来实现简单的对象迭代,相比较定义类实现 Iterator 接口的方式,性能开销和复杂性大大降低。生成器允许你在 foreach 代码块中写代码来迭代一组数据而不需要在内存中创建一个数组, 那会...