Java迭代器作为一个类?
我对一些看起来很有趣的东西很感兴趣,但这不适合我。我们有一个哈希集和迭代器:Java迭代器作为一个类?,java,iterator,Java,Iterator,我对一些看起来很有趣的东西很感兴趣,但这不适合我。我们有一个哈希集和迭代器: Set<String> set = new HashSet<>(); Iterator it = set.iterator(); Set Set=newhashset(); Iterator it=set.Iterator(); 我知道迭代器是如何工作的,但我觉得有些奇怪: 迭代器*it=set.Iterator()** *好的,等等。迭代器是一个接口,而不是一个类。那么 **好的,set是
Set<String> set = new HashSet<>();
Iterator it = set.iterator();
Set Set=newhashset();
Iterator it=set.Iterator();
我知道迭代器是如何工作的,但我觉得有些奇怪:
迭代器*it=set.Iterator()**
*好的,等等。迭代器是一个接口,而不是一个类。那么
**好的,set是HashSet类的一个对象,它实现了接口迭代器,所以它实现了void interator(),没有什么异常
但是我们如何从迭代器接口创建迭代器对象呢?在
HashSet
中实现Iterator()
方法会返回一个实现Iterator
接口的对象。返回的对象是符合迭代器规范的某个具体类的实例
首先,实现而不是。这两个接口是相关的,但不同
现在谈谈你的问题。诸如此类
Iterator it = ...;
真正的意思是,it
是对实现迭代器接口的类的实例的引用。它不是对“接口”的引用(这样的事情确实没有多大意义,因为你不能实例化接口)。应该读Iterator It=set.Iterator()代码>请参阅,谢谢,但是我们如何使迭代器it=。。。我们可以创建字符串、整数对象,但不能创建接口。HashMap
返回实现迭代器的具体类的对象,但所述类是隐藏的和/或匿名的。.iterator()
的“用户”不应该关心任何一种方式。仅供参考,在这里找到了类:谢谢!我试着做一个测试——一个毫无意义的测试,但它是有效的:Comparable test=String.valueOf(1)@RichardK:String.valueOf(1)
返回实现Comparable
接口的类的实例。是的,我试图做一些类似于我的问题的事情,只是为了测试complilator或JVM是否会作为例外。它起作用了。