文章 > 头条 > java迭代器原理分析

java迭代器原理分析

java迭代器原理

头像

小妮浅浅

2021-02-25 10:02:204921浏览 · 0收藏 · 0评论

本教程操作环境:windows7系统、java10版,DELL G3电脑。

1.迭代器的好处

(1)迭代器可以提供统一的迭代方式。

(2)迭代器也可以在对客户端透明的情况下,提供各种不同的迭代方式。

(3)迭代器提供一种快速失败机制,防止多线程下迭代的不安全操作。

不过对于第三点尚需注意的是:我们不能保证迭代过程中出现“快速失败”的都是因为同步造成的,因此为了保证迭代操作的正确性而去依赖此类异常是错误的!

2.迭代器模式的原理

说明

(1)Iterator :迭代器接口,是系统提供,含义 hasNext、next、remove

(2)ConcreteIterator :具体的迭代器类,管理迭代。

(3)Aggregate :一个统一的聚合接口,将客户端和具体聚合解耦。

(4)ConcreteAggreage :具体的聚合持有对象集合,并提供一个方法,返回一个迭代器,该迭代器可以正确遍历集合

(5)Client :客户端,通过Iterator和Aggregate依赖子类。

3.源码分析

ArrayList中迭代器的具体实现如下:

public interface Inteator {
public abstract boolean hasNext();
public abstract Object next();
}
public interface Iterable {
Iterator iterator();
}
public interface Collection extends Iterable {
Iterator iterator();
}
public interface List extends Collection {
Iterator iterator();
}
public calss ArrayList implements List {
public Iterator iterator() {
return new Itr();
}
private class Itr implements Iterator { //接口的具体实现类
//包含了 所需功能  next()    hasNext() 等
}
}
//编译看左边,运行看右边~~~

以上就是java迭代器的原理分析,相信大家经过本篇的学习,已经对迭代过程和接口的一些用法有所掌握。对于其基本组成部件还没有理解的,可以多看看上方的图解。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!