java - 一个迭代器不同类型的 LinkedList

标签 java iterator listiterator

我仍在学习迭代器,它们非常有趣。不过我有一个问题:

我做了两个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();

此代码没有帮助,因为它仍然认为它正在使用字符串。

最佳答案

我不熟悉你的 DLLDoubleLinkedList类,但我认为这并不重要并且会混淆问题。这是我使用简单的 java.util.List 的答案.

如果你确实必须使用相同的 Iterator变量,使用通用通配符 <?> 。但是,请注意,您必须强制转换对象,就像在前泛型 Java 中一样:

List<String> stringList = new ArrayList<>();
List<Integer> intList = new ArrayList<>();
Iterator<?> it = stringList.iterator();
String string = (String) it.next();
it = intList.iterator();
Integer integer = (Integer) it.next();

关于java - 一个迭代器不同类型的 LinkedList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33059711/

相关文章:

java - 使用 java 从 anchor 标记中抓取网站的 href 值

Java编译带空格目录的问题?

c++ - 'ostream_iterator<int>' 的初始化没有匹配的构造函数

c++ - OpenMP、C++ 和迭代器

php 递归目录迭代器 : how to exclude directory paths with a dot and double dots?

java - ListIterator last hasNext() 有点不明白

java - 有没有办法使用字符串来选择变量?

java - Java 中的全局热键

java - 使用 ListIterator 从列表末尾开始连接

java - Android 游戏中的列表迭代器