Java 一个迭代器包含不同类型的LinkedList

Java 一个迭代器包含不同类型的LinkedList,java,iterator,listiterator,Java,Iterator,Listiterator,我还在学习迭代器,它们非常有趣。不过,我有一个问题: 我制作了两个DoubleLinkedList,每个都有不同的通用。我想只使用一个迭代器遍历每一个,如何更改我的迭代器上的泛型 DLL<String> aList = new DLL<>(); DLL<Integer> bList = new DLL<>(); DLL<String>.MyIterator<String> it = aList.Iterator(); 这段

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

我制作了两个
DoubleLinkedList
,每个都有不同的通用
。我想只使用一个
迭代器
遍历每一个,如何更改我的
迭代器
上的泛型

DLL<String> aList = new DLL<>();
DLL<Integer> bList = new DLL<>();
DLL<String>.MyIterator<String> it = aList.Iterator();

这段代码没有帮助,因为它仍然认为它在处理字符串。

我不熟悉您的
DLL
DoubleLinkedList
类,但我认为这并不重要,并且会混淆问题。这是我用一个简单的
java.util.List
给出的答案

如果确实必须使用相同的
迭代器
变量,请使用通用通配符
。但是,请注意,您必须强制转换对象,就像在pre-generics 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();
List-stringList=new-ArrayList();
List intList=new ArrayList();
迭代器it=stringList.Iterator();
String String=(String)it.next();
it=intList.iterator();
整数=(整数)it.next();

我不熟悉您的
DLL
DoubleLinkedList
类,但我认为这并不重要,而且会混淆问题。这是我用一个简单的
java.util.List
给出的答案

如果确实必须使用相同的
迭代器
变量,请使用通用通配符
。但是,请注意,您必须强制转换对象,就像在pre-generics 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();
List-stringList=new-ArrayList();
List intList=new ArrayList();
迭代器it=stringList.Iterator();
String String=(String)it.next();
it=intList.iterator();
整数=(整数)it.next();

如果要迭代两个列表,则需要两个迭代器。如果你想在第一个列表之后迭代第二个列表,你需要将第二个迭代器分配给另一个变量,因为它的类型不同。所以没有办法使用一个迭代器,遍历第一个列表,当我完成后,我会让它遍历第二个列表?有迭代器链接之类的概念,但基本上,您仍然需要为每个迭代列表创建一个迭代器。这就是
iterator()
方法通常所做的。很好,谢谢!如果要迭代两个列表,则需要两个迭代器。如果你想在第一个列表之后迭代第二个列表,你需要将第二个迭代器分配给另一个变量,因为它的类型不同。所以没有办法使用一个迭代器,遍历第一个列表,当我完成后,我会让它遍历第二个列表?有迭代器链接之类的概念,但基本上,您仍然需要为每个迭代列表创建一个迭代器。这就是
iterator()
方法通常所做的。很好,谢谢!