[TreeMap] Corresponding value to a key

Status
Nicht offen für weitere Antworten.

Thomas D

Mitglied
Hallo!

Wie es die Überschrift dieses Threads bereits ausdrückt, würde ich gerne von einer TreeMap neben der get()-Methode, die ja zum jeweiligen Key den Value zurückgibt, auch die umgekehrte Variante unterstützt haben: Also ein bestimmter Key bzw. eine bestimmte Set von Keys, die zu einem bestimmten Value korrespondieren. Krieg' ich das mit der TreeMap hin oder muss ich hierfür eine andere Collection verwenden?

BTW: Das eigentliche Programme ist dann ein Wörterbuch, das es erlaubt von Sprache A zu Sprache B zu übersetzen und umgekehrt. Eben für die umgekehrte Variante (also z.B. Deutsch-Englisch anstelle von Englisch-Deutsch) würde ich die Values benötigen und deren Keys dazu (also nicht die Values allein - dies ging ja durch TreeMap.values() ...).
 

Thomas D

Mitglied
Das ist ja dann redundant - sprich: ich speichere die Werte zweimal. Oder verstehe ich etwas an deinem Lösungsansatz nicht?
 
G

Gast

Gast
nee die objekte speicherst du nur einmal, bloss die referenzen mehrmals

und wenn du nach mehreren sachen sortieren willst brauchst du mehrere indizes
 

Thomas D

Mitglied
Interessant dein Ansatz, nur checke ich ihn irgendwie nicht ganz :D. Es bleibt ja trotzdem eine Redundanz vorhanden, da ich eine zweite Collection verwenden muss. Weiters können somit nicht mehr Keys dieselben Values haben. Aber vielleicht musst du mir deinen Ansatz einfach nur noch einmal genauer erklären - vielleicht mit einem kurzen Pseudo-Codebeispiele ...

Für mein Problem habe ich übrigens schon eine Lösung gefunden, die einwandfrei funktioniert :):

Code:
if (!this.containsValue(wort))
	throw new WoerterbuchException (kommtNichtVor);
else
{
	Iterator it = this.keySet().iterator();
	Object keyTemp = "";
					
	while (it.hasNext())
	{
		keyTemp = it.next();
		if (this.get(keyTemp).equals(wort))
			return (String) keyTemp;
	}
}

BTW: this entspricht in diesem Fall die TreeMap ...
 
G

Gelöschtes Mitglied 6946

Gast
das ist aber arschlahm, da du sequentiell alle keys durchgehst. wenn du ein umfangreiches wörterbuch hast, kann das schon dauern. 2 treemaps würden zwar etwas mehr speicher bedeuten, aber das ganze wäre definitiv schneller. du speicherst in dem fall ja auch nicht die gesamten wörter zweimal ab, sondern nur die referenz (4 byte oder so). das wurde aber schon gesagt, ich wiederhol das hier auch bloß :D
also ich würde dir in deinem fall auf jeden fall 2 bäumchen empfehlen.
 
B

Beni

Gast
Das könnte irgendwie so aussehen (Java 1.5 Syntax):
Code:
// Zwei Maps für die Übersetzungen
Map<String, Set<String>> germanToEnglish = new HashMap<String, Set<String>>();
Map<String, Set<String>> englishToGerman = new HashMap<String, Set<String>>();

// Methode die ein Wörterpaar einträgt
public void translate( String german, String english ){
  insert( germanToEnglish, german, english );
  insert( englishToGerman, english, german );
}

// Methode die in eine Map ein Wörterpaar einträgt
private void insert( Map<String, Set<String>> map, String key, String value ){
  Set<String> set = map.get( key );
  if( set == null ){
    set = new HashSet<String>();
    map.put( key, set );
  }
  set.add( value );
}

// Für ein englishes Wort alle deutschen Übersetzungen holen.
public Set<String> getGermanWordsFor( String englishWord ){
  return englishToGerman( englishWord );
}
 
G

Gelöschtes Mitglied 6946

Gast
müsste es in der methode getGermanWordsFor nicht
Code:
return englishToGerman.get( englishWord );
heißen?
 
G

Gelöschtes Mitglied 6946

Gast
ich wollt nur die anzahl der nachfolgenden fragen um eins reduzieren :D und solch kleinigkeiten passieren mal schnell, wenn man ein programm ins forum tippt ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Neumi5694 Datentypen ArrayList vs TreeMap Allgemeine Java-Themen 6
G treeMap.putall funktioniert nicht?! Allgemeine Java-Themen 2
B Collections TreeSet/TreeMap, doppelte Einträge zulassen ? Allgemeine Java-Themen 11
G mittleres Element aus TreeMap Allgemeine Java-Themen 5
G Datentypen TreeMap nach Color sortiert (kd-Baum) Allgemeine Java-Themen 8
J Vorsortieren für TreeMap Allgemeine Java-Themen 7
W Comparator oder TreeMap? Allgemeine Java-Themen 10
C Reihenfolge einer SortedMap/TreeMap umkehren Allgemeine Java-Themen 3
D Probleme beim schreiben / lesen in TreeMap Allgemeine Java-Themen 9
B TreeMap Index !!! Allgemeine Java-Themen 6
J Eindeutige ID für Objekte als Keys in TreeMap Allgemeine Java-Themen 12
P Große Datenmenge wie speichern (HashMap? TreeMap?) Allgemeine Java-Themen 11
T TreeMap durch Comparator mit Generics sortieren Allgemeine Java-Themen 9
E MySQL-Datenbank <-> HashMap/TreeMap Allgemeine Java-Themen 1
W Socket.setSoTimeout -> BufferedReader -> Default value Allgemeine Java-Themen 4
M Thymeleaf th value und th text Allgemeine Java-Themen 1
N Value Wert aus HTML-Button mittels thymeleaf spring an java übergeben Allgemeine Java-Themen 2
Meeresgott Effizientester Weg um nach der Value einer verschachtelten Map aufzulösen Allgemeine Java-Themen 5
Thallius Key/Value Table in Klasse einlesen Allgemeine Java-Themen 14
S @Value mit bestimmt Werten, sonst default Allgemeine Java-Themen 42
H Klassen LibGDX - Verschiedene Klassen als Value in einer Map Allgemeine Java-Themen 8
B HashMap aus Value Key bekommen Allgemeine Java-Themen 2
F Unterschied zwischen NormalizedValue und Value Allgemeine Java-Themen 5
Q For-Schleife in String-Value Allgemeine Java-Themen 3
L Variablen HashMap nimmt value nicht an Allgemeine Java-Themen 3
M Java - Call by value <-> Call by reference Allgemeine Java-Themen 16
B Load of Known null Value Allgemeine Java-Themen 9
T Hashmap mit geordneter/ungeordneter liste als Value Allgemeine Java-Themen 5
algorismi int-variable Value Change event Allgemeine Java-Themen 3
G HTTP key-value-paar Allgemeine Java-Themen 8
J Map nach value sortieren Allgemeine Java-Themen 14
G Verschachtelte Treemaps, nach Value sortieren Allgemeine Java-Themen 11
faetzminator Regex zur Suche von "value-losen" Attributen in HTML Tags Allgemeine Java-Themen 7
T Set.contains() auch false wenn value == null? Allgemeine Java-Themen 4
G Generics in Map. Type of value abhängig vom key Allgemeine Java-Themen 3
S Map die die auch ein getKey(value) erlaubt? Allgemeine Java-Themen 2
MQue call by value Allgemeine Java-Themen 5
F Javadoc: @value tag nicht für private fields? Allgemeine Java-Themen 11
P call by value/referenz Allgemeine Java-Themen 4
N Sieht aus wie ein "Call by Referece/Call by Value" Allgemeine Java-Themen 7
S Call by Value Allgemeine Java-Themen 9
V Objekt aus Session als copy by value bekommen Allgemeine Java-Themen 4
R Wert in Hashtable ändern (Key ändern, Value bleibt) Allgemeine Java-Themen 3
H Aus der FAQ: Call by Value <-> Call by Reference Allgemeine Java-Themen 8
C Map(Key/Value) mit mehreren Values Allgemeine Java-Themen 16
M Value als String in beliebige Klasse konvertieren Allgemeine Java-Themen 18
Fredy Return by value mit String?? Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben