beim Scannen einer Datei nach Wörtern und die integrierte hashset-Klasse aus der API, gibt meine Wortzahl 349 (was es sein soll)Implementieren meiner eigenen HashSet-Klasse ... meine add() - Logik scheint fehlerhaft
Mit meiner selbstgemachten hashset-Klasse bekomme ich 235 ... also etwas in meiner add() - Methode muss falsch sein, aber ich kann nicht verstehen, was es ist.
danke für jede Hilfe!
public class HashWordSet implements WordSet {
private int size = 0;
private Node[] buckets = new Node[8];
public Iterator<Word> iterator() {
return new WordIterator();
}
//Add word if not already added
public void add(Word word) {
int key = getBucketNumber(word);
Node node = buckets[key];
while (node != null) {
if (node.value.equals(word))
return;
else
node = node.next;
}
node = new Node(word);
buckets[key] = node;
size++;
if (size == buckets.length) rehash();
}
private int getBucketNumber(Word word) {
int hc = word.hashCode();
if (hc < 0) hc = -hc;
return hc % buckets.length;
}
danke digitaljoel! das war es genau! – Wangagat
sicher Ding. Es war eine schöne Ablenkung :) – digitaljoel