Collections

Hallo! Kann mir vlt jemand helfen? Ich weiß nicht genau was ich machen soll.

Betrachten Sie eine Klasse Translator<T1, T2>, die eine 1:1 Beziehung von Objekten abbildet. Betrachten Sie das folgende Beispiel:

Translator <String , String > germanEnglish = new Translator <>(); 
germanEnglish.put("Hallo", "Hello"); 
System.out.println(germanEnglish.translate("Hallo")); // -> Hello 
System.out.println(germanEnglish.retranslate("Hello")); // -> Hallo ...

Hier wird ein neuer Translator angelegt, der Strings in Strings übersetzt. Mit der Methode put können neue Übersetzungen angelegt werden, hier Hello – Hallo. Mit der Methode translate kann jetzt ein Objekt vom Typ T1 auf den Typ T2 ,gemapped” wer- den. Im Gegensatz zu einer Map ist aber auch der umgekehrte Weg möglich: retranslate übersetzt ein Objekt vom Typ T2 nach T1.

T1 und T2 sind unabhängig, und können natürlich auch unterschiedliche Typen sein:

Translator <String , Integer > numbers = new Translator <String , Integer >(); numbers.put("ONE", 1);
numbers.put("TWO", 2);
numbers.put("THREE", 3);
System.out.println(numbers.translate("THREE")); 
for (int i = 1; i < 4; i++) {
System.out.println(numbers.retranslate(i));}

Implementieren Sie die Klasse Translator<T1, T2> und testen Sie anhand eines einfachen Beispiels deren Funktion. Argumentieren Sie, warum Sie sich für ihre Lösung entschieden haben!

Na der dickste Hinweis steht doch schon im Text selbst: “Im Gegensatz zu einer Map ist aber auch der umgekehrte Weg möglich”

Was kannst du mit einer Map anfangen? Hin-übersetzen. Was könntest du mit einer zweiten Map anfangen? Genau…

In der Dokumentation zur guava BiMap kannst du dir vielleicht noch ein paar Ideen abschauen, wie du das implementieren könntest. Außerdem steht dort auch beschrieben, welche Fälle noch bedacht werden müssten.

Fragen in der Form

werden tendenziell weniger hilfreiche und “engagierte” Antworten nach sich ziehen, als Fragen der Form

Der Hinweis deutet auf: zwei Maps. Beim einfügen muss “in beide Richtungen” eingefügt werden.

Mit Wörtern mit zwei Bedeutungen wird es dann schwierig.

Und nun, wie Marco schon schrieb, bitte deinen bisherigen Ansatz.

crossposting detected :frowning:

[ot]auch wenn schon der hinweis auf die “zwei maps”-Variante kam: es geht auch mit nur einer - bzw auch ganz ohne mit einer eigenen implementierung[/ot]

This class consists exclusively of static methods that operate on or return collections. ,