2016-07-28 11 views
0

Ich versuche, eine TreeMap zu erstellen, die in der Lage ist, mehrere Beans (Row) zu speichern, die einem Schlüssel zugeordnet sind. Meine aktuelle Erklärung des TreeMap ist:JAVA Alternative zum Deklarieren von TreeMap

Map<String, List<Row>> rowmap = new TreeMap<String, List<Row>>(); 

Mit dieser Art von Erklärung i leicht diese Methode hinzufügen kann:

rowmap.get(combinedKey).add(rowlst); 

Dies funktioniert gut in meinem lokalen Rechner. Das Problem aufgrund einiger Problem im Live-Tomcat-Server, konnte ich nicht die Erklärung oben genannten verwenden, um die Karte zu erklären, führt es diese Fehler:

Syntax error on token "<", (expected 
Syntax error, insert ")" to complete Expression 
Syntax error on token "<", (expected 
Syntax error on token "(", invalid Expression 

Also habe ich auf diese Weise erklärt:

Map rowmap = new TreeMap(); 

dies löst den vorherigen Fehler, aber ich konnte rowmap.get(combinedKey).add(rowlst); nicht verwenden, um mehrere Werte zu einem Schlüssel hinzuzufügen, weil .add in List nicht TreeMap definiert ist, von meinem Verständnis muss ich die TreeMap folgendermaßen deklarieren: Map<String, List<Row>> rowmap = new TreeMap<String, List<Row>>();rowmap.get(combinedKey).add(rowlst); verwenden zu können.

Es wäre großartig, wenn jemand einen Workaround vorschlagen könnte, um dieses Problem zu lösen. Ich bin offen für alle Vorschläge. Vielen Dank!

EDIT: Tomcat-Version: 5.5.9 Java-Version: 1.6.0_41-b02

+1

Warum versucht Live Tomcat Server, ein Java-Programm zu kompilieren? Ich habe das Gefühl, dass Sie das Problem falsch erkannt haben. Ich denke, Sie müssen sich darauf konzentrieren, das aufzuspüren und zu beheben, anstatt Ihren Java-Code zu beschädigen. – ajb

+1

@ajb JSP wahrscheinlich? –

+0

Und ich stimme zu, die Produktionsumgebung sollte Java-Code nicht kompilieren müssen. –

Antwort

0

Statt Verwendung von Add-Methode für Karten setzen. put (K-Schlüssel, V-Wert) zum Beispiel: rowmap.put (combinedKey, rowlst);

+0

Ich plane, mehrere Werte einem Schlüssel zuzuordnen, aber Maps. put (K-Taste, V-Wert) überschreibt den vorherigen Wert, der der Taste zugeordnet ist. Danke für den Vorschlag – User420

+0

Dann könntest du zuerst die Werte abrufen und ihnen deine neue Liste hinzufügen und nochmal auf den Schlüssel speichern zB: List rowvalues ​​= (Liste) rowmap.get (key); rowvalues.addAll (rowlst); rowmap.put (Schlüssel, Zeilenwerte); – athina