服务器之家

服务器之家 > 正文

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

时间:2021-01-24 11:27     来源/作者:不知不觉已变淡

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

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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);
    }
     
  }
}

输出

?
1
2
3
hello
world
helloworld

总结

以上就是本文关于Java编程Iterator迭代器设计原理及实现代码示例的全部内容,希望对大家有所帮助。有什么问题,可以留言,欢迎大家交流讨论。感谢朋友们对服务器之家网站的支持!

原文链接:http://blog.csdn.net/kdc18333608478/article/details/50663722

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
返回顶部