Better Map Constructor

Viewed 22903

Is there a more streamlined way to do the following?

Map<String, String> map = new HashMap<String, String>();
map.put("a", "apple");
map.put("b", "bear");
map.put("c", "cat");

I'm looking for something closer to this.

 Map<String, String> map = MapBuilder.build("a", "apple", "b", "bear", "c", "cat");
5 Answers

Java 9 adds Map.of, such as:

Map<String, String> map = Map.of("a", "apple", "b", "bear", "c", "cat");

Up to 10 entries are supported. For more entries you can use the overload taking Entry:

Map<String, String> map 
    = Map.ofEntries
        (Map.entry("a", "apple")
        , Map.entry("b", "bear")
        , Map.entry("c", "cat"));

Note that these methods do not return a HashMap. It returns an optimized immutable map.

Related