# Kotlin Map: What is it Used For?

> Kotlin maps are an important facet of Android app development. Learn more about them here.

Source: https://www.koombea.com/blog/kotlin-map/
Published: 2021-08-11
Author: Mario Tatis

---

If you’re interested in [Android mobile app development](https://www.koombea.com/capabilities/product-engineering/), you may have come across the topic Kotlin map. Maps are an important part of Kotlin, and to better understand this programming language and its capabilities, it is important to understand what a Kotlin map is and how it can be effectively used in the development of Android apps.

This topic is very technical in nature, but we won’t delve too deeply into the technicalities. If you want an informative overview of Kotlin maps, this post is for you. Let’s take a look at what a Kotlin map is and how it is used.

## What is a Kotlin Map?

**In the field of computer science, maps are commonly used as a way to structure data**. However, not all [programming languages](https://www.koombea.com/blog/best-back-end-languages-how-to-choose-the-perfect-one/) refer to these structures as maps. Some programming languages call these data structures associative arrays or dictionaries. In Kotlin, these structures are called maps.

Maps are used to store collections of key/value pairs. In Kotlin, maps can store zero or more key/value pairs. Every key in a map must be unique, and it can only be associated with one value. However, values do not have to be unique, and they can be paired with multiple different keys in a single map.

In Kotlin, key/value pairs are called entries. Kotlin maps are immutable by default. This means that entries cannot be edited, deleted, or changed in any way after they have been created. Kotlin does give users the ability to create mutable maps, or maps that can be edited after creation. However, you need to use the mutable map type in order to create a map that can be edited.

[Kotlin](https://www.koombea.com/blog/jvm-languages/) developers choose to use maps because they ensure quick read and write access even when there are large data sets that have to be processed. This is accomplished through hashing, which is responsible for key lookup and key insertion.

There are several different map implementations in the standard Kotlin library. However, the two most commonly used implementations are LinkedHashMap and HashMap. The major differentiator between LinkedHashMap and HashMap is the insertion order each implementation follows.

LinkedHashMap follows the insertion order when iterating over map entries, and the HashMap implementation does not.

## How to Use Kotlin Maps

Without getting overly technical, we will look at how users can use Kotlin maps. Some of the basic functions we will cover include:

- Key and value retrieval
- Filtering maps
- Editing maps

Understanding the basic mechanics behind some of these tasks will give you a more in-depth picture of what Kotlin maps are and how they function.

### Key and Value Retrieval

Accessing key/value pairs is an important part of a Kotlin map. Remember, map keys are unique and hold only one value. **Keys and values****can be accessed by using the*****get*****method**. Using *getKey* will return a key’s value. If the key does not exist, a *null* value will be returned.

Using *getValue* will return a value’s key. However, the *getValue* method provides some additional options in the event that there is no corresponding key to the value entered in the *get* method.

In the event that the key cannot be found, users can use *getOrElse* or *getOrDefault*. These two concepts are very simple and are exactly what they sound like. *getOrElse* allows users to substitute a key of their choice in the event that a key cannot be found. *getOrDefault* automatically returns the key you set as default in the event that a key cannot be found.

### Filtering Maps

If you’re going to be accessing maps and key/value pairs, it is helpful to be able to filter the view so that you can see specific information and key/value pairs. **Like other collections in Kotlin, maps can be filtered by using the*****filter*****function**.

Just like the *get* method, users can filter by key or value by using *filterKey* and *filterValue*. When a filter is applied, a new map is returned containing only the filtered items. For example, if you use *filterKey*, you will get a map that is composed solely of the map’s keys.

### Editing Maps

Remember that the default state of Kotlin maps is immutable. If you want to make edits, you need to make sure that you create a mutable map. Another important thing to note is that **keys cannot be edited, but they can be deleted**. When you edit a map entry, you are editing a key’s value.

You can add new key and value pairs, you can edit a key’s value, or you can remove a key and value pair completely. The *put* method is used for adding new data entries to your Kotlin map. However, you can also use *put* to overwrite the current value for a certain key if the key you entered already exists in your map.

By using *remove*, you can fully delete entries from your Kotlin map.

## Final Thoughts on Kotlin Maps

While you likely don’t need to have an in-depth understanding of how Kotlin maps operate to make valuable decisions for your organization, it is important to get a basic understanding of what Kotlin maps are. These data structures help provide many of the services users have come to expect from modern apps.

Kotlin maps are important to the [User Interface](https://www.koombea.com/capabilities/product-design/) function of your Android app, but the truth is you can leave the heavy lifting to your development team. If you have an Android app, want one, or are interested in learning more about the benefits a native Android app can have for your business, reach out to an [app development partner](https://www.koombea.com/).

A development partner will help you make the best development decisions for your organization based on industry experience and technical expertise. Get help understanding Kotlin maps and bring your Android app to life with an app development partner.

