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

迭代器

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

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

两者代码的写法不一样

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

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);
}

相关内容

热门资讯

新产品新场景新业态,梵净抹茶“...   6月1日,参加2026抹茶大会的嘉宾走进“中国抹茶之都”铜仁市,实地探访从茶园到餐桌的抹茶全产业...
未来十年“再造新广州”,6万亿... 界面新闻记者 | 张熹珑2030年地区生产总值达4.5万亿元左右,2035年达到6万亿元水平;“十五...
“剑指美西方”,中方团队列出了... 【文/观察者网 阮佳琪】 自特朗普首届任期对华发起贸易战以来,美国联合西方盟友持续收紧对华高端技术准...
老人这些行为,看似“奇奇怪怪”... 疯狂网购、极度抠门、整日怀旧……一些老人“奇奇怪怪”的行为,可能不单是节俭、固执、“闲得慌”,而是隐...
中消协:解压不是宣泄暴力,情绪... 近期,“娜塔莎”玩偶在年轻群体中迅速走红,被许多人当作一种别样的“情绪出口”。从最初网友对其进行的“...