LoginSignup
2
0

More than 3 years have passed since last update.

(今更)使い方によってはMapは超便利

Posted at

今更なMapの使い方

スクリーンショット 2019-09-09 20.08.44.png

とりあえず1000レコード適当に用意しました。

List
List<contact> contactList = new List<contact>();
List<Id> idsList = new List<Id>();

contactList = 
    [
        SELECT
        Id,
        FirstName
        FROM
        Contact
    ];

for (Contact c :contactList) {
    if ( c.FirstName == 'い793') {
            idsList.add(c.id);
    }
}
system.debug(idsList);
system.debug(limits.getCpuTime());

スクリーンショット 2019-09-09 20.52.18.png

Map
List<contact> contactList = new List<contact>();
Map<Id,Contact> contactMap = new Map<Id,Contact>([SELECT Id FROM Contact]);

Contact c = [SELECT Id FROM Contact WHERE FirstName = 'い793'];

system.debug(contactMap.get(c.Id));
system.debug(limits.getCpuTime());

スクリーンショット 2019-09-09 20.52.25.png

同じIdをとるのでも半分以下の時間で取ることができます。

まあ今更なんですけど、大量のデータを扱うような現場だとしっかりこの辺も意識できるといいのかなと思います。

Map
Map<Id,Contact> contactMap = new Map<Id,Contact>([SELECT Id FROM Contact]);

これでIdがキーになるMapが生成されるのもわかりやすくていいですね。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0