Gibt es etwas wie "HashMap <String, String, String>

Laprogram

Mitglied
Ich suche nach einer Methode, bei der zwei Wörter mit einem dritten verbunden sind. Ein beispiel wäre: Jemand gibt langsam ein, dann würde das Programm "langsam" mit einer Antwort(1) verbinden. Nun will ich aber, dass der Benutzer mehrer Wörter eingibt und davon zwei mit einem dritten Wort verbunden werden, also "langsam" und "Laptop".Es soll eine andere Antwort ausgegeben werden statt Antwort(1) oder die Antwort die das Programm ausgeben würde, hätte ich Laptop alleine eingegeben.

Java:
private HashMap<String,String> antwortMap;
.
.
antwortMap = new HashMap<String,String>();
    	antwortMapBefuellen();
.
.
	private void antwortMapBefuellen()              			
	{
        antwortMap.put("absturz", 
                       "Tja, auf unserem System kommt es nie zu einem Absturz. Das muss \n" +
                       "an Ihrem System liegen. Welche Konfiguration haben Sie?");

Danke im voraus!
 
Korrekt ware es, wenn du zwei keys fur einen wert hast, dann hast du einen concatinierten key.

Ein key muss auch nicht string sein..
 
Zuletzt bearbeitet:
Versuch mal das hier
Java:
private static HashMap<List<String>, String> antwortMap = new HashMap<>();

private static void mapPut(String wert, String ... keys) {
    antwortMap.put(Arrays.asList(keys), wert);
}

private static String mapGet(String ... keys) {
    return antwortMap.get(Arrays.asList(keys));
}

public static void main(String[] args) {
    mapPut("AB", "a", "b");
    mapPut("A", "a");
    mapPut("B", "b");
    System.out.println(mapGet("a", "b"));
    System.out.println(mapGet("a"));
    System.out.println(mapGet("b"));
}

Ich habe hier die Reihenfolge von wert und key vertauscht, damit ich die keys als varargs Argument definieren kann.
 
Wobei du hier aufpassen musst.

Mehrere gleiche aufrufe von arrays.asList erzeugen unterschiedliche keys im sinne einer hashmap.

Besser ware es die keys, wenn wirklich strings sind, zu konkatinieren.

Ansonsten eine neue klasse, die entsprechende hashCode und equals Implementierung besitzt
 
Zuletzt bearbeitet:

Zurück
Oben