Iterator 迭代器
创始人
2024-05-30 14:20:59
0

迭代器

为了兼顾 各个子类的特性
实现无差别可以 访问数据

举个例子
遍历数组和遍历链表
在这里插入图片描述

两者代码的写法不一样

为了实现
使用相同的代码
对不同的数据容器进行遍历
就出现了 迭代器

for语句的执行和 interator的实现息息相关
在这里插入图片描述

目的

访问各个类型 集合 的数据,而不用关心它们的内部实现。
Access the data of various types of collections without caring about their internal implementation.

代码

java中interator是一个接口
主要有两个抽象方法

public interface Interator{boolean hasNext();Object next();
}

hasNext()
用来判断 还有没有数据可以提供访问
next()
用来访问 集合的下一个数据

使用方式

Iterator iterator = xxx;
while (iterator.hasNext()) {System.out.println(iterator.next());
}

集合实现的是 Iterable 接口

public interface Iterable {Iterator iterator();
}

Collection集合 继承 Iterable接口
Collection Collection Inheritance Iterable Interface
因此需要实现相对应的方法
Therefore, corresponding methods need to be implemented

public interface Collection extends Iterable {
}
Collection collection = new ArrayList();
Iterator interator = collection.iterator();
while (iterator.hasNext()) {System.out.println(iterator.next());
}

迭代器具有隔离性和

各个迭代器之间遍历数据互不影响
The traversal data between each iterator does not affect each other

在这里插入图片描述
实现Iterator接口后
可以直接使用for each循环访问
因为其底层用的就是迭代器

Collection collection = new ArrayList();
for (Object o: collection) {System.out.println(o);
}

相关内容

热门资讯

银河磁体涨2.07%,成交额1... 7月2日,银河磁体盘中上涨2.07%,截至09:44,报29.14元/股,成交1.27亿元,换手率1...
墨尔本一托儿所员工涉性侵幼童,... 转自:三湘都市报澳大利亚墨尔本一名托儿所26岁男性工作人员,被控性侵8名年龄介于5个月至2岁的婴幼儿...
上万名也门民众声援加沙并庆祝以... 转自:央视近日,上万名也门民众来到首都萨那南部的七十广场,举行声援加沙地带的每周例行集会。此次集会除...
马里多地遇袭,军方打死80多名... 转自:上观新闻新华社达喀尔7月1日电(记者司源)巴马科消息:马里军方1日发表声明说,马里中部和西部多...
上海楼市“半年报”:一二手房成... 格隆汇7月2日|据上观,今年以来,上海持续落实好“沪九条”“沪七条”等各项政策措施,房地产市场总体延...
正帆科技跌2.12%,成交额5... 7月2日,正帆科技盘中下跌2.12%,截至09:46,报35.14元/股,成交5486.31万元,换...
港股高开 长春高新拟赴港股上市 每经记者|曾子建    每经编辑|叶峰     7月2日早盘,港股市场高开后震荡上...
ETF融资榜 | 光伏ETF(...        2025年7月1日,光伏ETF(515790.SH)收跌0.45%,成交6.15亿元。...
豪能股份跌2.06%,成交额4... 7月2日,豪能股份(维权)盘中下跌2.06%,截至09:46,报14.76元/股,成交4551.58...
润禾材料跌2.22%,成交额2... 7月2日,润禾材料盘中下跌2.22%,截至09:47,报25.60元/股,成交2030.65万元,换...