Zum Inhalt springen

Hashtable Frage -Java!!


Cyrill

Empfohlene Beiträge

äh, den Key bestimmst du doch selber, wenn du den Wert in die Hashtable schreibst...

...in der Regel der hashCode des Wertes. Wobei es eben so ein HashCode ansich hat, dass man ihn nicht "zurückrechnen" kann.



HashTable myHashTable = new HashTable();

Collection myCollection = new Collection("1","2","3","4","5");


myHashTable.put(myCollection.hashCode, myCollection);  

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi

Ja schon, aber sagen wir einmal unsere Hashtable sieht so aus:

Key Wert

1 TEST 1

2 TEST 2

3 TEST 3

4 TEST 4

5 TEST 5

6 TEST 6

Nun jetzt hab z.B den Wert TEST 5 und ich brauch den dazügehörigen Key... wie mache ich das! Umgekehrt ist es ja einfacher, da gehts mit "hashtable.get(key)"!

Link zu diesem Kommentar
Auf anderen Seiten teilen

da hast du bei der HashTable wohl schlechte Karten. Du müßtest eben schon beim Füllen der Hashtable darauf achten, dass du aus dem Wert auch auf den Key kommen kannst (z.B. hashCode()).

Ansonsten kannst du dir eben nur alle keys holen (keys()), und alle values (values). Nur beides zusammen eben leider nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

klar, eine Verbindung gibt es schon...

Das ist die get() methode von der Hashtable.


	public synchronized Object get(Object key) {

	Entry tab[] = table;

	int hash = key.hashCode();

	int index = (hash & 0x7FFFFFFF) % tab.length;

	for (Entry e = tab[index] ; e != null ; e = e.next) {

	    if ((e.hash == hash) && e.key.equals(key)) {

		return e.value;

	    }

	}

	return null;

	}


aber eben nur in die eine Richtung...

Wenn du einfach nur die beiden Collections mappest. Also collectionA[1] = collectionB[1], bekommst du auf jeden Fall nicht das richtige Ergbenis.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi

Ich habe mir hier mal etwas gebastelt, denn ich hatte das gleiche Problem. Allerdings hatte ich nicht die komplette Value.

Also habe ich mir einen eigenen Hashtable gemacht welcher intern wieder mit 2 Hashtables gearbeitet hat. Suchte ich nun nach dem Value so habe ich Hashtable a durchsucht, suchte ich nach Key so Hashtable b. In der eigenen Methode put habe ich halt das Key/Value Paar in beide Tables geschrieben.

Eine andere Lösung wäre, dass Du halt alle Werte des Tables durchgehst und das Objekt das Du zurück bekommst immer vergleichst. Sind die gleich, so hast du den gewünschten gefunden !

Erbeere

P.S. Sorry, wenn das etwas undurchsichtig ist, aber ich bin noch müde :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...