EnumMap is similar to Map except that EnumMap only takes the Enum type as key. Also, all the keys must be from a single enum type. For further details refer here.
public V getOrDefault(Object key,V defaultValue)
key: Key whose value is to be returned.defaultValue: Default mapping of key.Default value: Default Value if there is no mapping for the passed key.
Mapped value: Mapped value to the key if there is a mapping present for the passed key.
The code below demonstrates how to use the getOrDefault() method.
import java.util.EnumMap;class ComputeIfPresent {enum Subject {MATHS, SCIENCE, PROGRAMMING, ECONOMICS};public static void main( String args[] ) {EnumMap<Subject, Integer> map = new EnumMap<>(Subject.class);map.put(Subject.MATHS, 50);map.put(Subject.SCIENCE, 60);map.put(Subject.PROGRAMMING, 70);System.out.print("\nGetting value for key Subject.ECONOMICS using get(5) Method :" );System.out.println(map.get(Subject.ECONOMICS));System.out.print("\nGetting value for key Subject.ECONOMICS using getOrDefault Method :" );System.out.println(map.getOrDefault(Subject.ECONOMICS, 10));System.out.print("\nGetting value for key Subject.MATHS using getOrDefault Method :" );System.out.println(map.getOrDefault(Subject.MATHS, 10));}}
In the code above, we:
In lines 3-5, we create an Enum for the subjects with the name Subject.
In line 7, we create an EnumMap with the name map.
In lines 8-10, we add three entries to the map.
In line 13, we call the get method for the key Subject.ECONOMICS. This will return null because there is no value mapping for the key Subject.ECONOMICS.
In line 16, we call the getOrDefault(Subject.ECONOMICS, 10) method. This will return 10 because there is no value mapped for the key Subject.ECONOMICS.
In line 19, we call the getOrDefault(Subject.MATHS, 10) method. This will return 50 because the value 50 is mapped for the key Subject.MATHS.
Note: Use the
getOrDefaultmethod when you need a default value if the value is not present in theEnumMap.