2
我正在寫一個節點類這種情況下,我想打一個內部節點迭代器類,我至今寫:調用一個內部類
import java.util.Iterator;
import java.util.NoSuchElementException;
public class Node<E> {
E data;
Node<E> next;
int current = 0;
public Node(E data, Node<E> next){
this.data = data;
this.next = next;
}
public void setNext(Node<E> next){
this.next = next;
}
private class NodeIterator implements Iterator {
/*@Override
public boolean hasNext() {
Node<E> node = this;
for(int i=1; i<current; i++){
node = node.next;
}
if(node.next==null){
current = 0;
return false;
}
current++;
return true;
}*/
@Override
public boolean hasNext() {
// code here
}
/*public Node<E> next() {
if(next==null){
throw new NoSuchElementException();
}
Node<E> node = this;
for(int i=0; i<current && node.next!=null; i++){
node = node.next;
}
return node;
}*/
@Override
public Node<E> next() {
// code here
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
}
}
我想打一個節點對象在NodeIterator內部像這樣:Node<E> node = this;
。
評論代碼是用Node類編寫的,我在Node類本身實現了Iterator,但是我想讓它成爲一個內部類,任何建議如何使它成爲那樣?
所以,你要訪問的外部節點封閉外節點實例?試試'節點 node = Node.this;'。另請注意,您可能想要緩存迭代器中的下一個節點,而不是從第一個節點迭代到當前節點。 –
Thomas
2012-04-26 15:06:47
謝謝托馬斯:D – 2012-04-26 15:08:07