`

foreach迭代对像与Iterator迭代器对像

阅读更多
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迭代器可以方便的操作容器内的元素。



分享到:
评论

相关推荐

    ES6 迭代器(Iterator)和 for.of循环使用方法学习(总结)

    Iterator可以使我们不需要初始化集合,以及索引的变量,而是使用迭代器对象的 next 方法,返回集合的下一项的值,偏向程序化。 迭代器是带有特殊接口的对象。含有一个next()方法,调用返回一个包含两个属性的对象,...

    java迭代器

    Iterator 对象称为迭代器 设计模式的一种 )),主要用于遍历 Collection 集合中的元素。迭代器提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。迭代器模式,就是为容器而生。 ...

    meteor-collection-iterator:从Meteor集合创建迭代器对象

    集合迭代器这个Mongo.Collection实例添加了一个方法,该方法返回一个。例子 Animals = new Mongo . Collection ( 'animals' ) ;'ant bat cat dog elk fox gnu hog' . split ( ' ' ) . forEach ( function ( animal )...

    深入理解JavaScript系列(35):设计模式之迭代器模式详解

    迭代器模式(Iterator):提供一种方法顺序一个聚合对象中各个元素,而又不暴露该对象内部表示。 迭代器的几个特点是: 1.访问一个聚合对象的内容而无需暴露它的内部表示。 2.为遍历不同的集合结构提供一个统一的接口...

    implementation-iterator:迭代 PSR-4 兼容目录以实现类接口

    scheb/实现迭代器 该库为符合 PSR-4 的文件夹结构创建迭代器,并在其中搜索接口/类的所有实现/扩展。 抽象实现和类本身将被忽略。 用法 $ iterator = new \ Scheb \ ImplementationIterator ( "src/" , "Root\...

    PHP设计模式入门之迭代器模式原理与实现方法分析

    使对象可以像数组一样进行foreach循环,要求属性必须是私有。 不使用迭代器模式很难实现,先看实现的代码: sample.php &lt;?php class Sample implements Iterator{ private $_arr; public function __construct...

    php和C#的yield迭代器实现方法对比分析

    本文实例讲述了php和C#的yield迭代器实现方法对比。...IEnumerable表示一个类可以迭代,也就是可以用foreach遍历,IEnumerator是真正的迭代器实现,IEnumerable和IEnumerator一个是使用迭代器的接口,一个是实现迭

    PHP迭代器和生成器用法实例分析

    迭代器实际是一个实现了Iterator的类,可以用foreach进行遍历。 例如: &lt;?php class Sample implements Iterator{ private $curIndex=0; private $items=null; public function __construct($_items) { $...

    PHP中预定义的6种接口介绍

    2.Iterator迭代器接口 接口摘要: Iterator extends Traversable { //返回当前索引游标指向的元素 abstract public mixed current(void) //返回当前索引游标指向的元素的键名 abstract public scalar key(vo

    ES6新特性二:Iterator(遍历器)和for-of循环详解

    for-of工作原理:迭代器有一个next方法,for循环会不断调用这个iterator.next方法来获取下一个值,直到返回值中的 done属性为true的时候结束循环。 ① 在ES6之前 var arr = [1,2,3,4,5,6]; arr.name = 'a'; for (var...

    Java 集合类(HashSet、ArrayList、LinkedList、HashMap).pptx

    掌握List集合、Set集合、Map集合的使用以及Iterator迭代器和foreach循环的使用 了解常用的集合类 熟悉泛型的使用

    PHP5.5新特性之yield理解与用法实例分析

    yield生成器是php5.5之后出现的,yield提供了一种更容易的方法来实现简单的迭代对象,相比较定义类实现 Iterator 接口的方式,性能开销和复杂性大大降低。 yield生成器允许你 在 foreach 代码块中写代码来迭代一组...

    PHP之预定义接口详解

    在PHP中有好几个预定义的接口,比较常用的四个接口(IteratorAggregate(聚合式aggregate迭代器Iterator)、Countable、ArrayAccess、...这个接口实现了一个功能——创建外部迭代器,具体怎么理解呢,当我们使用foreach

    Java基础–为什么ArrayList,Vector等都不支持循环中remove?

    为什么ArrayList,Vector等都不支持循环中remove1 Vector 直接删除2 Vector 遍历元素2.1 for循环遍历2.2 迭代器循环2.3 任意方向遍历2.4 Vector的foreach3. Vector迭代器删除4. Vector不使用迭代器删除元素5. Vector...

    classtools:从文件系统中查找,提取和处理php类

    从命令行使用: composer require hanneskod/classtools使用迭代器使用并扫描文件中的php类,接口和特征。进入班级地图getClassMap()返回类名称到对象的映射。 $ finder = new Symfony \ Component \ Finder \ ...

    php使用yield对性能提升的测试实例分析

    生成器提供了一种更容易的方法来实现简单的对象迭代,相比较定义类实现 Iterator 接口的方式,性能开销和复杂性大大降低。生成器允许你在 foreach 代码块中写代码来迭代一组数据而不需要在内存中创建一个数组, 那会...

Global site tag (gtag.js) - Google Analytics