【发布时间】:2015-10-10 22:41:28
【问题描述】:
我仍在学习迭代器,它们非常有趣。但是我有一个问题:
我制作了两个DoubleLinkedList,每个都有一个不同的通用<Type>。我想只使用一个Iterator 遍历每一个,如何更改我的Iterator 上的通用<>?
DLL<String> aList = new DLL<>();
DLL<Integer> bList = new DLL<>();
DLL<String>.MyIterator<String> it = aList.Iterator();
使用“it”迭代器我只能遍历 aList 而不能遍历 bList。
it = new bList.Iterator();
这段代码没有帮助,因为它仍然认为它正在使用字符串。
【问题讨论】:
-
如果要迭代两个列表,则需要两个迭代器。如果要在第一个列表之后迭代第二个列表,则需要将第二个迭代器分配给不同的变量,因为它的类型不同。
-
所以没有办法使用一个迭代器,遍历第一个列表,当我完成后,我会让它遍历第二个列表?
-
有迭代器链接之类的概念,但基本上,您仍然需要为每个迭代列表创建一个迭代器。这就是
iterator()方法通常所做的。 -
好的,谢谢!
标签: java iterator listiterator