我在用foreach显示LinkedList时遇到问题。
当我想显示我的LikedList时,我的列表中出现了一个错误,它告诉我必须使用迭代器。这是代码:
public class Set {
private LinkedList <Integer> elements;
public Set () {
this.elements = new LinkedList <Integer> ();
}
public static void main (String [] args) {
Set test = new Set ();
test.add (8);
test.add (2);
test.add (7);
for (int e: test) {
}
}
因此,我使用了迭代器作为显示,但一条消息告诉我的迭代器对于方法集是未定义的。
这是代码:
public class Set {
private LinkedList <Integer> elements;
public Set () {
this.elements = new LinkedList <Integer> ();
}
public static void main (String [] args) {
Set test = new Set ();
test.add (8);
test.add (2);
test.add (7);
Iterator <Integer> iterator = test.iterator ();
while (iterator.hasNext ()) {
System.out.println (iterator.next ());
}
}
如果你能帮我,那对我会有很大帮助。
(我试图在Set((public中定义"Iterator <Integer> iterator = this.elements.iterator ();
",并以这种方式将其称为"while (iterator.hasNext ()) {
System.out.println (iterator.next ());
}
",但没有成功(
提前谢谢你,
您的Set类需要将可迭代接口实现为
public class Set implements Iterable<Integer> {
private LinkedList<Integer> elements;
public Set() {
this.elements = new LinkedList<Integer>();
}
@Override
public Iterator<Integer> iterator() {
return elements.iterator();
}
}
您的类Set
没有定义迭代器,您应该添加一个类似的方法:
public Iterator<Integer> getIterator() {
return elements.iterator();
}