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!
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.
[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]