Date: 2020aug4
Update: 2026jul13
Language: Java
Q. Java: How to initialize immutable Map in Java8
A. Use Collections.unmodifiableMap() as shown in this full example:
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
class Demo {
static final Map<String, String> mStates = Collections.unmodifiableMap(new HashMap<String,String>() {{
put("AL", "Alabama");
put("AK", "Alaska");
put("AZ", "Arizona");
}});
// Notice the double brace brackets
public static final void main(String[] args) {
for (var ent : mStates.entrySet()) {
System.out.println(ent);
}
}
}
Output:
AZ=Arizona
AK=Alaska
AL=Alabama
Some people don't like the double brace brackets because it
creates an anonymous inner class. But I like it because its compact.