Salesforce Maps, What Are They And How Can We Use Them?

In the second installment of data types, we’re today looking into maps, what they are & how we can use them. Understanding Maps: A Comprehensive yet Simple Guide In the simplest terms, a map is a collection of key-value pairs, where each unique key is associated with a value. Think of it as a real-world […]

0

In the second installment of data types, we’re today looking into maps, what they are & how we can use them.

Understanding Maps: A Comprehensive yet Simple Guide

In the simplest terms, a map is a collection of key-value pairs, where each unique key is associated with a value. Think of it as a real-world map where you have a location (key) and the details of that location (value). This data structure allows you to store, retrieve, and organize data in a way that promotes efficiency and speed, especially when you have to manage large sets of data.

Imagine having a list of customer details. Without a map, if you wanted to find a customer’s details, you might have to sift through the entire list, one entry at a time. However, with a map, you can directly pinpoint the customer’s details using a unique identifier, such as a customer ID, drastically reducing the time taken to find the information.

Here’s how you can picture a map:

Key: Customer ID
Value: Customer Details (Name, Address, etc.)
The “key” is a unique identifier (Customer ID in this case), and the “value” is the data associated with that key (Customer Details).

Now we’ve covered the visualization, let’s go through an example of using a Map in Apex

Navigating Maps in Salesforce

  1. Creating a Map

    Before you start working with a map, you need to create it. In Apex, this is how you would initialize a map:

    Map<ID, String> customerMap = new Map<ID, String>();
  2. Adding Elements to a Map

    Adding data to your map is as simple as using the put method, where you specify the key and the value:

    customerMap.put('12345', 'John Doe'); 
    customerMap.put('12346', 'Jane Smith');
  3. Retrieving Values from a Map

    To get the value associated with a specific key, use the get method:

    String customerName = customerMap.get('12345'); // Returns 'John Doe'
  4. Removing an Element from a Map

    If you want to remove a key-value pair from your map, utilize the remove method:

    customerMap.remove('12345'); // Removes the key-value pair with the key '12345'
  5. Checking if a Key Exists in a Map

    Sometimes, you might need to check if a specific key is in the map, which you can do using the containsKey method:

    Boolean containsKey = customerMap.containsKey('12346'); // Returns true
  6. Iterating Over a Map

    To go through each entry in your map, you can use a loop. Here’s how you would do it:

    for(ID key : customerMap.keySet()) {
        System.debug(key + ' - ' + customerMap.get(key));
    }

Practical Application: Using Maps Efficiently

Now, let’s apply what we’ve learnt into an actual example

public class mapDemonstration {
    
    public static void updateCustomerDetails(List<Customer__c> customers) {
        Map<Id, Customer__c> customerDetailMap = new Map<Id, Customer__c>();

        // Storing customer details in the map
        for(Customer__c cust : customers) {
            customerDetailMap.put(cust.Id, cust);
        }

        // Retrieving a list of customers to update using the map
        List<Customer__c> customersToUpdate = [SELECT Id, Name, Address__c FROM Customer__c WHERE Id IN :customerDetailMap.keySet()];

        // Updating customer details efficiently using the map
        for(Customer__c cust : customersToUpdate) {
            Customer__c customerDetailsFromMap = customerDetailMap.get(cust.Id);
            cust.Name = customerDetailsFromMap.Name;
            cust.Address__c = customerDetailsFromMap.Address__c;
        }

        // Updating the records in Salesforce
        update customersToUpdate;
    }
}

In this example, a map helps in efficiently updating customer details. Instead of using nested loops, which would increase the time complexity, we use a map to directly access the necessary customer details using their unique IDs, resulting in speeding up the process significantly – and keeping our users happy!

Conclusion

Maps are your best friend in craeting efficient, streamlined, and powerful Salesforce applications. As a beginner, having a deep understanding and hands-on expertise with maps will pave the way for your successful journey in the Salesforce development journey.

Cameron Ofoluwa
WRITTEN BY

Cameron Ofoluwa

22 Year Old Salesforce Developer @ Pogust Goodhead & Founder of SFDXHours.

Leave a Reply

Your email address will not be published. Required fields are marked *