A map collection, as the name implies, allows you to associated an object (key) to another object (value). A map dictates that your collection can't contain duplicate keys, and each key is mapped to one value. The interesting part about a map is that its interface provides three collection views —the set of keys, the collection of all the values, and the set of key-value mappings.
When using a map, you need to pay attention to the keys you are using. When you add an item to the map, the first thing it does is locate which bucket it should go into. To do so, it will use the hashCode method, and, after that, depending on the implementation, it will use the equals method. Therefore, your keys need to be immutable; otherwise; the behavior of the map can't be specified.
We know already that Kotlin provides support for immutable and mutable maps at the interface...