Home >Java >javaTutorial >How to Best Initialize Static Maps in Java?
Initialising Static Maps in Java: Options and Considerations
Static maps provide a convenient way to store key-value pairs within a class. When it comes to initialising static maps, Java offers two primary methods: the static initialiser and the instance initialiser (using an anonymous subclass).
Static Initialiser
The static initialiser syntax allows you to define the map and populate its values within a static block, as seen in the example below:
private static final Map<Integer, String> myMap = new HashMap<>(); static { myMap.put(1, "one"); myMap.put(2, "two"); }
This method is straightforward and does not require any additional classes or syntactic sugar. However, any modifications made to the map after its initialisation will not be reflected in the static version.
Instance Initialiser (Anonymous Subclass)
The instance initialiser, on the other hand, uses an anonymous subclass to initialise the map:
private static final Map<Integer, String> myMap2 = new HashMap<>(){ { put(1, "one"); put(2, "two"); } };
This approach provides a compact and concise syntax for initialising the map. However, it creates an anonymous subclass that can potentially impact performance, especially in heavily nested instances.
Considerations
private static final Map<Integer, String> myMap = Collections.unmodifiableMap(aMap);
Which Method to Choose?
The choice between the static and instance initialiser depends on the specific use case:
The above is the detailed content of How to Best Initialize Static Maps in Java?. For more information, please follow other related articles on the PHP Chinese website!