欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java编程Iterator迭代器设计原理及实现代码示例

程序员文章站 2024-04-02 08:47:28
我们知道迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素。那么iterator迭代器的设计原理是什么呢?迭代器问什么定义了一个借口,而不...

我们知道迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素。那么iterator迭代器的设计原理是什么呢?迭代器问什么定义了一个借口,而不是一个类呢?

我们假设迭代器迭代数据的功能定义为了一个类,那么,会有这样的问题。不同的集合,由于数据结构不一样,所以他们的存储方式也是不一样的。也就是说,迭代器获取的时候,获取的方式是变化的,也就是不固定的。所以把这种方式定义为具体的实现是不合理的。

无论何种集合,他们肯定都有获取的功能,而且不知道什么时候就没有数据了。所有他们也会有判断功能。于是,就把判断和获取功能抽取出来,定义在接口中。这样的话,将来无论是哪种集合在遍历的时候,它们自己只要去实现迭代器接口即可。

那具体怎么实现的呢?集合迭代器是以内部类的方式实现的。简单看一段代码。

package me.socketthread;

import java.util.arraylist;
import java.util.collection;
import java.util.iterator;

public class iteratordemo { 
  public static void main(string[] args) { 
    //创建对象 
    collection c = new arraylist(); 
     
    //添加元素 
    c.add("hello"); 
    c.add("world"); 
    c.add("helloworld"); 
     
     
    //遍历集合对象,通过集合对象调用方法c.iterator()得到迭代器对象iterator 
    iterator it = c.iterator(); //返回的是iterator的子类对象,多态。 
     
    while (it.hasnext()) {    //检查序列中是否还有元素 
      //system.out.println(it.next()); 
      string s =(string)it.next();//获得序列中的下一个元素 
      system.out.println(s); 
    } 
     
  } 
} 

输出

hello
world
helloworld

总结

以上就是本文关于java编程iterator迭代器设计原理及实现代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:java编程利用socket多线程访问服务器文件代码示例java多线程编程实现socket通信示例代码等,有什么问题,可以留言,欢迎大家交流讨论。感谢朋友们对网站的支持!