今更なMapの使い方
とりあえず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());
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());
同じIdをとるのでも半分以下の時間で取ることができます。
まあ今更なんですけど、大量のデータを扱うような現場だとしっかりこの辺も意識できるといいのかなと思います。
Map
Map<Id,Contact> contactMap = new Map<Id,Contact>([SELECT Id FROM Contact]);
これでIdがキーになるMapが生成されるのもわかりやすくていいですね。