Gibt es eine bewährte Methode zum Schreiben von Maps in Java?
Kurz gesagt, wenn Sie wollen, schreiben Sie eine Karte von z.B. Konstanten in Java, was z.B. in Python und Javascript, die Sie schreiben würde, als eine wörtliche,
T<String,String> CONSTANTS =
{
"CONSTANT_NAME_0": CONSTANT_VALUE_0 ,
"CONSTANT_NAME_1": CONSTANT_VALUE_1 ,
"CONSTANT_NAME_2": CONSTANT_VALUE_2 ,
//...
} ;
gibt es eine Class
oder eine voreingestellte Object
, die Sie verwenden können, für das schreiben eine Datenstruktur wie diese?
Kommentar zu dem Problem
Siehe auch initialisieren java HashSet Werte werden durch den Bau Frage.
InformationsquelleAutor der Frage FK82 | 2010-09-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konstanten? Ich würde verwenden eine enum.
Wert für z.B.
NAME_2
kann erhalten werden wie folgt:Nur die enum ein bisschen mehr sinnvollen Namen, z.B.
Settings
,Defaults
etc, was auch immer diese name/Wert-Paare eigentlich stellen.InformationsquelleAutor der Antwort BalusC
Mag ich es so machen:
Den doppelten {{ }} eine Instanz-Initialisierung-block. Sie sind ein bisschen ungewöhnlich, aber Sie sind nützlich. Keine Notwendigkeit für Bibliotheken oder Hilfsprogramme.
InformationsquelleAutor der Antwort xpmatteo
Nein, Java muss nicht eine Karte literal. Der nächstgelegene Sie kommen werde, um mit Google Collections' ImmutableMap:
InformationsquelleAutor der Antwort Jorn
Sorry, ich bin ein Tüftler 🙂 Hier ist eine etwas sauberere Möglichkeit.
InformationsquelleAutor der Antwort Tony Ennis
Können Sie schreiben, selbst eine schnelle-Helfer-Funktion:
Hinweis: der code oben ist nicht zu stoppen, die Sie überschreiben Konstanten mit dem gleichen Namen, mit
CONST_1
mehrere Orte in deiner Liste wird das Ergebnis in der letztenCONST_1
's Wert erscheinen.Nutzung ist so etwas wie:
InformationsquelleAutor der Antwort Mark Elliot
Hier ist ein weiterer Weg, am besten geeignet für Karten, die nicht verändert werden:
InformationsquelleAutor der Antwort Tony Ennis
Java7 wohl zu implementieren, die folgende syntax:
Aber jetzt sind Sie gezwungen, Lösungen vorgeschlagen, von Jorn oder Tony Ennis.
InformationsquelleAutor der Antwort Crozin
Ok, mit Jorn ' s Verbesserung, die ich kann nicht scheinen, um die Karte wechseln zu alle, die intern oder extern. Vielleicht nicht ganz so gut lesbar, aber wenn Sie benötigen, um die Karte zu sein unmodifiable ich denke, das ist besser.
InformationsquelleAutor der Antwort Tony Ennis
Ich gerne die Deklaration und Initialisierung auf der gleichen Linie. Ich habe dieses handliche wenig Dienstprogramm so lange es im Grunde ist mein "anzeigen-literal" und bis Sie fertig sind "rechts" in der Sprache, ich werde weiter mit ihm so 🙂
Glücklich, es zu teilen hier.
InformationsquelleAutor der Antwort cobbzilla