Ich brauche Hilfe bei der Definition des zu verwendenden Ansatzes. Ich habe eine SOAP-Antwort, die mir eine XML-Datei gibt. Ich muss am Ende 3 korrelierte Listen auf dem Bildschirm angezeigt werden. Wenn Sie ein Element in der ersten Liste auswählen, erscheinen die entsprechenden Auswahlmöglichkeiten in der zweiten Liste usw. Ich bin nur daran interessiert, wie die Daten effizient organisiert werden, nachdem sie aus dem XML-Stream extrahiert wurden. Hier ist ein XML-Schnipsel:Java-Datenstruktur zur Simulation eines Datenbaums
<device>
<manufacturer>Acer</manufacturer>
<model>A1</model>
<platform>Android</platform>
</device>
<device>
<manufacturer>Acer</manufacturer>
<model>A1</model>
<platform>J2ME</platform>
</device>
<device>
<manufacturer>Acer</manufacturer>
<model>A2</model>
<platform>Android</platform>
</device>
<device>
<manufacturer>Samsung</manufacturer>
<model>E400</model>
<platform>Android</platform>
</device>
So werde ich so etwas wie Hersteller haben = { "Acer", "Acer", "Acer", "Samsung"}, model = { "A1", "A1", "A2", "E400"}, Plattform = {"Android", "J2ME", "Android", "Android"}.
Hier kommt der spaßige Teil: Ich muss die Daten massieren, damit ich sie verwenden kann, um 3 Listen anzuzeigen. Nach der Auswahl von Android werden Acer und Samsung verfügbar. Wenn Acer ausgewählt ist, sind die Modelle A1 und A2 verfügbar. Alle Listen müssen sortiert werden. Zur Zeit verwende ich Sax, um die Daten in einen Vektor von Objekten zu analysieren, die Hersteller-, Modell- und Plattformfelder enthalten. Alles, woran ich denken kann, ist eine TreeMap-ähnliche Struktur. Irgendwelche Vorschläge würden geschätzt werden.
Ich mag deine Antwort (es war meine andere Idee :-)), also +1 für das. Aber bitte lernen Sie, Ihren Code richtig zu formatieren. Ich habe versucht, es für dich zu tun, aber offenbar funktionieren geordnete Listen und Codeblöcke nicht gut zusammen. –
Meine Benutzer müssen durch eine Reihe von Reifen springen, bevor Sie diese Informationen ausfüllen, damit ich garantieren kann, dass die Reihenfolge ihrer Entscheidungen Plattform/Hersteller/Modell ist. Ich werde diese Lösung verwenden, da die meisten davon bereits implementiert wurden. Vielen Dank. – alex
Der Vollständigkeit halber habe ich eine MultiValueMap von org.apache.commons.collections.map verwendet – alex