There are many reasons to use Maps in Apex triggers. Sometimes I want to make a List of Contacts, but I want to pull each one by its ID. This is a good reason to abandon the List and to make a Map<id, Contact>. (Some will prefer to use Map<string, Contact>, and that is okay too.) This is how I used to populate a Map<id , Contact> of all Contacts at Accounts in a trigger: This takes time and uses script statements, and in a big org/app, we want to minimize both. Here’s my new way: It’s pretty simple, and it works well. It also keeps code clean. More astute readers will note that this is similar to the Trigger context variables trigger.oldMap & trigger.newMap, which populate a map of the trigger records keyed to their record ids.