Implements Map, Cloneable and Serializable.
As keys, enum elements are used.
With Cloneable, EnumMap can create a copy of itself.
With Serializable, EnumMap can be converted into bits or bytes, which letting the EnumMap to be transmitted over the network.
Declaring an EnumMap means rendering the class of the enum type to the map in the constructor of the map.
EXAMPLE FOR USAGE OF ENUMMAP:
With the putAll() method it is possible to insert elements from an other map type however, the other map should have the same enum as key type and valueType.
Differences between EnumSet and EnumMap:
EnumSet is stored as a sequence of bits, EnumMap is stored as arrays
EnumSet is created with its methods e.g. allOf(), noneOf(), range(), of(), EnumMap is created with its constructor