public class Eintrag{ private K ke; private V va; Eintrag(K k, V v){ ke = k; va = v; } public K key(){ return ke; } public V value(){ return va; } public void setkey(K k){ ke = k; } public void setvalue(V v){ va = v; } public void print(){ System.out.println("<" + ke + ", " + va + ">"); } } //erste fertig import java.util.*; import java.lang.*; public class Dict implements Woerterbuch{ private int size; private int tab_gro; Collection> hashZeile[]; Dict(){ size = 0; tab_gro = 10; hashZeile = (LinkedList>[]) new Object[tab_gro]; } Dict(int a){ size = 0; tab_gro = a; hashZeile = new LinkedList>[tab_gro]; } public Eintrag finde(K k){ int k_hash = k.hashCode() % tab_gro; Iterator it = hashZeile[k_hash].iterator(); Eintrag tmp; while(it.hasNext()){ tmp = (Eintrag)it.next(); if(tmp.key() ==k) return tmp; } return null; } public void einfuege(K k, V v){ int k_hash = k.hashCode() % tab_gro; Eintrag neu_eintrag = new Eintrag(k, v); hashZeile[k_hash].add(neu_eintrag); size++; } public void streiche (Eintrag e){ int k_hash = e.key().hashCode() % tab_gro; Iterator it = hashZeile[k_hash].iterator(); Eintrag tmp; while(it.hasNext()){ tmp = (Eintrag) it.next(); if(tmp.equals(e)){ it.remove(); size--; break; } } } public int groesse(){ return size; } public Collection> findeAlle(K k){ Collection> collection = new LinkedList>(); int k_hash = k.hashCode() % tab_gro; Iterator it = hashZeile[k_hash].iterator(); Eintrag tmp; while(it.hasNext()){ tmp = (Eintrag)it.next(); if(tmp.key() == k){ collection.add(tmp); } } return collection; } public Collection> eintraege(){ Collection> collection = new LinkedList>(); for(int i = 0; i < tab_gro; i++){ Iterator it = hashZeile[i].iterator(); while(it.hasNext()){ collection.add((Eintrag)it.next()); } } return collection; } public boolean istLeer(){ return (size==0); } public static void main(String[] args){ Dict dict = new Dict(5); dict.einfuege(216873, 5.0); dict.einfuege(3898589, 1.3); dict.einfuege(4050066, 2.0); dict.einfuege(3671832, 5.0); dict.einfuege(4054540, 1.3); dict.einfuege(4171189, 1.7); Eintrag stu = dict.finde(4050066); Collection> allstu = dict.eintraege(); if(!dict.istLeer()){ Iterator it = allstu.iterator(); System.out.println("Die alle Eintreage des Woerterbuchs sind: "); while(it.hasNext()) ((Eintrag) it.next()).print(); System.out.println(""); } } }