ひずみ継ぎ手


繰り返し文を使用して各配列を出力する場合は、次のコードを使用します.
int arr[] = {1,2,3,4,5};
for (int x:arr){
	system.out.println(x);
}
このような繰り返し文を使用する場合はよくある(int x:arr)ので、この部分ではIvalenterインタフェースを実装します.
public Iterator<E> iterator(){ 
	return new IteratorHelper();
} 
I歪子インタフェースを実現するクラスを作成した.

public class LinkedList<E> implements ListI<E>{
	class IteratorHelper implement Iterator<E>{
		Node<E> index;
		public IteratorHelper(){
			index=head;
		}
		public boolean hasNext(){
			return (index != null)
		}
		public E next(){
			if (!hasNext())
				throw new NoSuchElementException();
			E val = index.data;
			index = index.next;
			return val;
		}
	}
}
定義LinkedList<E>、addFirst、addLast、removeFirst...方法は同じです.
次に、IteratorHelperの内部クラスが作成されます.
この種は奇形器を実施する.
奇形腫界面には2つの方法が必要である.
  • hasNext:次のノードがある場合はtrueを返し、ポインタがnullを指す場合はfalseを返します.
  • next:現在の指向を返します.
  • 奇形腫Helperの実施時にコンパイルされていない場合は、削除方法が実施されていないためである可能性がある.
    しかしながら、java 1.8では、デフォルトの方法をインタフェースで実装することができる.
    サポートされていない操作Exceptionを刺激するために、インタフェースにremoveという方法が実装されている.
    したがって1.8ではremoveメソッドに注意する必要はありません.
    コンストラクション関数ではindexはheadを示します.
    hasNextはindexがnullを指していることを知るだけでよい.
    リストが空の場合、またはインデックスが最後の場合、index!=nullを返します.
    next hasNextがtrueであるかどうかを確認します.つまり、リストが空であることを確認してください.
    falseの場合、NoSuchElementException()が励起される.
    返す内容がある場合はindexをvalに返します.dataを代入し、indexは次のノードを指します.
    これによりLinkedListの内容を1つずつ印刷することができる.