Java 中的迭代器实现指南
已发表: 2020-06-11在 Java 中,有一个实用程序用于从系列中生成连续元素,称为java 迭代器。 由所有集合类实现,Java 中的这些迭代器实现返回一个对象,然后触发接口。 由于 Java 集合框架由在可重用数据集上运行的类组合组成,因此通过此类迭代器接口返回的对象可以跨越集合中的所有元素。
在执行之前,您需要牢记 Java 迭代器的一些特定特征:
- Java 中的集合框架配备了 iterator () 函数,可以帮助执行 READ 和 REMOVE 命令。
- 与其他迭代器不同,迭代方法使用 next() 函数在自动循环中移动元素。
- 每个迭代器只能遍历所有元素一次,一旦到达序列的末尾,就该获取另一个迭代器了。
阅读: Java 如此受开发人员欢迎的 6 大原因
目录
在 Java代码中执行迭代器实现
由于每个框架都带有一个返回的对象,因此可以使用此类方法以下列方式访问元素:
- 调用 iterator() 方法。
- 创建一个可以调用 boolean hasNext() 的循环,该循环返回一个布尔变量。 一旦变量具有实际值,它就允许迭代器遍历集合。
- 调用 E next() 函数以获取集合中的下一个元素。
- 默认的 void remove() 可用于删除通过迭代器返回的最后一个元素的底层集合。
- 默认的 void forEachRemaining() 函数帮助迭代器在每个元素上执行任何给定的函数,直到整个集合完成处理。
在 java 中的迭代器实现中使用 hasNext() 和 Next() 函数
正如我们已经知道的,next() 函数帮助迭代器一次遍历所有集合元素; 因此,一旦迭代器到达集合的末尾,next() 就会引发异常。 这就是为什么在 next() 之前使用 haveext() 函数可以确保迭代器具有与集合一致的下一个对象,以消除任何异常。
Object remove():在 object remove() 函数的帮助下,您可以删除并返回最后一个被迭代器遍历并由 next() 返回的对象。 如果对象自上次访问后发生任何修改,则函数 IllegalStateException() 将生效。

这是函数如何发生的一个简单示例:
ArrayList abc = new ArrayList();
迭代器 xyz = xyz.iterator();
xyz.next();
xyz.删除;
xyz.remove();
xyz.next();
xyz.remove();
导入 java.util.*;
类迭代器Trial
{
公共静态无效主要(字符串[] arg)

}
List trialList = new ArrayList();
String trialArray[] = {“Harry”, “Jack”, “Jacob”, “Maggie”, “George”};
for (int i=0; i<trialArray.length; i++)
{
trialList.add(trialArray[i]);
}
迭代器 xyz = trialList.iterator();
而 (xyz.hasNext())
{
System.out.println(xyz.next());
}}}
上述代码生成的输出为:
哈利
杰克
雅各布
劣质煤
乔治
在上面的示例中,为 ArrayList abc 创建了迭代器 xyz,该迭代器一旦删除了第一个元素和相邻的对象,就会执行快速简单的迭代。
另请阅读:初学者的 17 个有趣的 Java 项目想法和主题
Java中的自定义类迭代器实现
对于任何用户定义的自定义类,您可以使用以下方法迭代元素:

- 设置和定义自定义类。
- 将集合类分配和定义给自定义类。
- 在这个集合类中,需要以自定义类作为类型参数来实现可迭代接口。
- 同一个集合类应该能够执行一个iterator() 函数。
- 一旦在 Custom 类中遵循这些说明,就可以为其元素运行迭代器对象或增强型 For Loop()。
Java中迭代器实现的优缺点
- 适用于任何 Collection 类
- Collection API 的通用游标,具有安全的方法和操作
缺点:
- 不支持 CREATE 和 UPDATE 操作
- 迭代只发生在一个方向
- ListIterator 和 Spliterator 是 Java 中更好的游标,允许并行迭代和批量数据迭代。
Java中的枚举和迭代器实现:异同
- 枚举器和迭代器都是 java 游标,可用于在单个方向上一次一个地迭代集合类元素。
- 两个游标都支持 READ 方法。
不同点:
- 枚举是一个遗留接口,首先在 Java 1.0 中执行,并且仅限于 Legacy 集合类,与 Iterator 不同。
- 枚举器不是通用游标,因此具有棘手的函数名称,仅限于执行 READ 函数。
另请阅读:印度的 Java 开发人员薪水:适合新人和有经验的人
结论
伙计们,这就是Java中的迭代器实现! 希望您现在知道如何以正确的方式开始迭代。
如果您有兴趣了解有关全栈软件开发的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发 PG 文凭,该文凭专为在职专业人士设计,提供 500 多个小时的严格培训、9 个以上的项目,以及任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。