はJavaクラスを採用しており、独自のHashSetクラスを設計する必要があります。 (JAVA APIを使用していません)Java:ユーザが作成したHashSetクラスのイテレータを実装しています。 next()とhasNext()のセマンティクス?
私はこのためにイテレータを実装しなければなりません。
イテレータのインデックスを移動するNext()呼び出しを許可する必要があるかどうか、またはnext()をhasNext()ループと共に使用して絶対にnextインデックス。
たとえば、ユーザーがhasNext()を使わずにnext()をいくつか連続して呼び出した場合はどうなりますか?
ありがとうございました!
public class HashWordSet implements WordSet {
private int size;
private Node[] buckets = new Node[8];
//above is only provided for mention of variables
private class Node {
Word value;
Node next = null;
public Node(Word word) {value = word;}
public String toString() {return value.toString();}
}
class WordIterator implements Iterator<Word> {
private Node next;
private int index = 0;
public Word next() {
Node element = next;
if (element == null)
throw new NoSuchElementException();
if ((next = element.next) == null) {
Node[] temp = buckets;
while (index < temp.length && (next = temp[index++]) == null)
;
}
return element.value;
}
public boolean hasNext() {
return (next != null);
}
こんにちはルイ、説明のおかげで。コードスニペットで正しい方向に私を向けることができると思いますか?ありがとう – Wangagat
確か:Javaの 'HashMap'ソース。 http://www.docjar.com/html/api/java/util/HashMap.java.html#791 –
あなたが送信したリンクに基づいて変更しましたが、それでも動作しません(上記のアップデート) Andrzej Doyle – Wangagat