我刚刚了解了 Java 集合框架如何在链表中实现数据结构.据我了解, Iterators 是一种遍历数据结构(如列表)中的项目的方法.为什么要使用这个接口?为什么 hasNext()、next() 和 remove() 方法不直接编码到数据结构实现本身?
I just learned about how the Java Collections Framework implements data structures in linked lists. From what I understand, Iterators are a way of traversing through the items in a data structure such as a list. Why is this interface used? Why are the methods hasNext(), next() and remove() not directly coded to the data structure implementation itself?
来自 Java 网站:链接文本
From the Java website: link text
公共接口迭代器 An集合上的迭代器.迭代器代替枚举中的Java 集合框架.迭代器在两个方面不同于枚举: public interface Iterator<E> An
iterator over a collection. Iterator
takes the place of Enumeration in the
Java collections framework. Iterators
differ from enumerations in two ways:
我尝试用谷歌搜索,但似乎找不到明确的答案.有人能解释一下 Sun 选择使用它们的原因吗?是因为更好的设计吗?提高安全性?好的 OO 实践?
I tried googling around and can't seem to find a definite answer. Can someone shed some light on why Sun chose to use them? Is it because of better design? Increased security? Good OO practice?
任何帮助将不胜感激.谢谢.
Any help will be greatly appreciated. Thanks.
为什么要用这个接口?
Why is this interface used?
因为它支持允许客户端程序员迭代任何类型的集合的基本操作(注意:不一定是 Object 意义上的 Collection).
Because it supports the basic operations that would allow a client programmer to iterate over any kind of collection (note: not necessarily a Collection in the Object sense).
为什么方法...不是直接的编码到数据结构实现本身?
Why are the methods... not directly coded to the data structure implementation itself?
他们是,他们只是被标记为私人,所以你不能接触他们并与他们混为一谈.更具体地说:
They are, they're just marked Private so you can't reach into them and muck with them. More specifically:
Iterator 或对其进行子类化,这样它就可以做一些标准的不做的事情,而不必改变它所迭代的实际对象.Iterators 分发给任意数量的客户端,每个客户端都可以按照自己的速度以自己的时间遍历.Iterators 如果支持它们的存储在您仍然有 Iterator 输出的情况下被修改,则会引发异常.此异常让您知道 Iterator 现在可能正在返回无效对象.Iterator such that it does something the standard ones don't do, without having to alter the actual object it iterates over.Iterators to however many clients you wish, and each client may traverse in their own time, at their own speed.Iterators from the java.util package in particular will throw an exception if the storage that backs them is modified while you still have an Iterator out. This exception lets you know that the Iterator may now be returning invalid objects.对于简单的程序,这似乎都不值得.不过,使它们有用的那种复杂性很快就会出现.
For simple programs, none of this probably seems worthwhile. The kind of complexity that makes them useful will come up on you quickly, though.
这篇关于Java中的Iterator接口有什么好处?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
Java从数组中删除重复项?Java Remove Duplicates from an Array?(Java从数组中删除重复项?)
如何修复调用失败来自服务器的意外响应:在 AnHow to fix Invocation failed Unexpected Response from Server: Unauthorized in Android studio(如何修复调用失败来自服务器的意外响应:在
AES 加密,解密文件中有多余的垃圾字符AES encryption, got extra trash characters in decrypted file(AES 加密,解密文件中有多余的垃圾字符)
AES 错误:给定的最终块未正确填充AES Error: Given final block not properly padded(AES 错误:给定的最终块未正确填充)
在 JAVA 中使用 AES/GCM 检测不正确的密钥Detecting incorrect key using AES/GCM in JAVA(在 JAVA 中使用 AES/GCM 检测不正确的密钥)
Java 中的 AES-256-CBCAES-256-CBC in Java(Java 中的 AES-256-CBC)