Java: Arrays und Vektoren

7

Ich bin es gewohnt, mit PHP zu arbeiten, aber in letzter Zeit habe ich mit Java gearbeitet und habe Kopfschmerzen, um das herauszufinden. Ich möchte diese Darstellung in Java speichern:

%Vor%

Gibt es einen sauberen Weg (d. h. keinen schmutzigen Code), um dieses Ding in Java zu speichern? Hinweis; Ich möchte Strings als Array-Indizes (in der ersten Dimension) verwenden und kenne die definitive Größe der Arrays nicht.

    
Jean Paul Galea 27.09.2008, 21:03
quelle

4 Antworten

12

Sie können eine Karte und eine Liste verwenden (diese beiden Schnittstellen sind in mehr als einer Weise implementiert, damit Sie in Ihrem Fall die geeignetste auswählen können).

Weitere Informationen finden Sie in den Lernprogrammen für Map und List und vielleicht sollten Sie mit der Sammlungen Tutorial.

Ein Beispiel:

%Vor%     
Vinko Vrsalovic 27.09.2008, 21:15
quelle
15

Versuchen Sie es mit Map<String, List<String>> . Dies ermöglicht Ihnen, Strings als Schlüssel / Indizes in die äußere Map zu verwenden und ein Ergebnis als Liste von Strings als Werte zu erhalten. Wahrscheinlich möchten Sie HashMap für die äußere Karte und ArrayList für die inneren Listen verwenden.

Wenn Sie einen sauberen Code benötigen, der dem von Ihnen angegebenen PHP ähnelt, können Sie etwas wie folgt tun:

%Vor%     
Dave L. 27.09.2008 21:08
quelle
5

Sie möchten eine Karte , die mit einem Schlüssel versehen ist ungefähr alles. HashMap funktioniert in den meisten Fällen.

So ähnlich.

%Vor%

Wenn Sie etwas einfacheres wollen, hat die Bibliothek commons-lang eine MultiMap .

    
sblundy 27.09.2008 21:07
quelle
2

Seien Sie vorgewarnt, dass der Vektor ist Legacy-Code für das Collections-Framework. Es synchronisiert den Zugriff auf seine Elemente, was die Leistung verlangsamt. Die meisten Anwendungsfälle für die Verwendung von List benötigen diese Art von Threadsicherheit nicht, und selbst wenn Sie dies tun würden, wäre ich eher geneigt, die CopyOnWriteArrayList .

    
Alan 28.09.2008 03:14
quelle