Java Tipp: Initialisierung einer Map

Der übliche Weg führt über ein put(), wobei man das unterschiedlich schreiben kann:

Map<String, String> map = new HashMap<String, String>();
map.put( "name", "chris" );
map.put( "email", "a@b.c" );

Oder auch mit einem Exemplarinitialisierer (das ist aber schmutzig in meinen Augen!):

Map<String, String> map = new HashMap<String, String>() {{
  put( "name", "chris" );
  put( "email", "a@b.c" );
}};

Alternative: http://commons.apache.org/collections/api-release/org/apache/commons/collections/MapUtils.html#putAll(java.util.Map,%20java.lang.Object[]). Die API nennt ein Beispiel:

Map colorMap = MapUtils.putAll(new HashMap(), new String[][] {
     {"RED", "#FF0000"},
     {"GREEN", "#00FF00"},
     {"BLUE", "#0000FF"}
});

Die Apache Common Collections sind aber erst einmal nicht generisch!

Für http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Maps.html ist so was wohl geplant, aber bisher noch nicht implementiert.

2 Responses to “Java Tipp: Initialisierung einer Map”

  1. # Anonymous hansi

    hm... ich finde die erste möglichkeit eigentlich recht schön, jedeR java programmiererIn kann von anfang an sowas schreiben/lesen ohne viel zu überlegen. die erste möglichkeit ist auch gleich lang wie alle anderen ... für mich gibts da net viel zu überlegen.

    die letzte methode find ich überhaupt am furchtbasten - wären da zwei verschiedenen typ-parameter (statt zweimal string) müsste man hier einen object array verwenden (oder nicht?).

    naja...  

  2. # Anonymous Michael

    Sehe ich das richtig?
    Methode 2 generiert eine anonyme Klasse und Methode 3 ein zweidimensionales String-Array und das alles nur damit es ein ganz klein wenig besser lesbar ist.
    Resourcen sparen ist wohl nicht mehr?
    Hoffentlich sieht das die "Java ist langsam"-Fraktion nicht... ;-)  

Kommentar veröffentlichen

Suche

Willkommen!

In diesem Blog schreibe ich über aktuelle Entwicklungen in Java, Softwareentwicklung im Allgemeinen, Open-Source, JavaScript, neue Eclipse-Plugins und Neuerungen im Buch ›Java ist auch eine Insel‹.

Mein Foto
Name: Christian Ullenboom
Standort: Hannover, Niedersachsen, Germany

Ich bin Christian Ullenboom und Autor des Buches ›Java ist auch eine Insel‹. Seit 1997 schule ich als Java-Tutor Themen wie Java SE, EJB 3, Hibernate, JSP/Servlets. Sun ernannte mich 2005 zum ›Java-Champion‹.

Feed hinzufügen

  • AddThis Feed Button


XML