SalesforceのMapクラスとは?よく利用するパターンごとに使い方を解説
IT・技術関連
更新日:2024.09.05
エンジニア採用
SalesforceのMapクラスとは? SalesforceのMapクラスとは、キーと値がセットになったApexのコレクション型クラスです。 SalesforceのMapクラスの一部のメソッドは、JavaのMapクラスのメソッドと似ています。また、他にもJavaのMapクラスと似ている点に、同じキーに対して別々の値を持てない点があります。 共通点がある一方で、SalesforceのMapでは実装クラス(例.HashMap)で初期化する必要がないなど違いがあるため、注意が必要です。JavaのMapクラスとの違いの詳細は、Apex開発者ガイドをご確認ください。 なお、キーと値に設定できるデータ型には次の型があります。
- プリミティブ型
- コレクション型
- ユーザ定義型
- sObject型
- 組み込みApex型
よく利用するMapクラスの使い方
Mapクラスがよく利用されるパターンごとにメソッドの使い方を解説していきます。 よく利用するMapクラスの使い方についてご興味がある方は、ぜひ参考にしてみてください。Mapクラスのインスタンスに要素を設定する方法
Mapクラスのインスタンスに値を設定する方法は、4種類あります。 SalesforceのMapクラスはJavaのMapクラスによく似ていますが、Salesforce特有のメソッドも提供されています。Mapクラスのインスタンスを新規作成し、キーを指定して値を設定する方法
Mapクラスのインスタンスを作成し、put()でキーを指定して値を設定します。Map<String, Integer> map1 = new Map<String, Integer>();
// put()を利用して、キーと値をセットで指定する
map1.put('りんご', 120);
map1.put('バナナ', 200);
他のオブジェクトの全要素を追加設定する方法
Mapクラスのインスタンスに、putAll()の引数に指定したオブジェクトの全要素を追加設定します。putAll()の引数に指定できるオブジェクトは、Mapクラスまたは、組織のSalesforceオブジェクトであるsObjectの配列のみです。 なお、Mapクラスのインスタンスに既に存在するキーの場合、putAll()の引数で指定されたオブジェクトの値に置き換えられます。また、sObjectの配列をputAll()の引数に指定した場合、キーにsObjectのIDが、そのキーの値にはsObjectが設定されます。 例)putAll()でMapクラスのインスタンスの全要素を追加設定した場合Map<String, String> map1 = new Map<String, String>();
map1.put('りんご','青森');
Map<String, String> map2 = new Map<String, String>();
map2.put('梨','山梨');
// map1の全要素がmap2に追加設定される
map2.putAll(map1);
System.debug(map2); // りんごと梨の情報が出力される
既に存在するMapクラスの要素を新しいインスタンスにすべて設定する方法
新しいMapクラスのインスタンスを作成したときに、コンストラクタに指定されたMapクラスの全要素を設定します。Map<String, Integer> map1 = new Map<String, Integer>();
map1.put('りんご', 120);
map1.put('バナナ', 200);
// Mapクラスのコンストラクタにmap1を設定すると、map1の全要素がmap2に設定される
Map<String, Integer> map2 = new Map<String, Integer>(map1);
// List同様に中括弧({})構文を使用し、インスタンスの作成と要素の設定を同時に行える
// 中括弧({})構文では、キーを設定し、「=>」を宣言した後にキーの値を指定する
Map<String, String> producingMap = new Map<String, String>{'りんご' => '青森', '梨' => '山梨'};
sObjectの配列をMapクラスのインスタンスに変換する方法
sObjectの配列からMapクラスに変換したインスタンスを作成します。Salesforce特有のMapクラスの使い方です。作成されたMapクラスのキーにsObjectのIDが、値にはsObjectが設定されます。// 取引先情報(sObject[])を取得する
List<Account> list = [select Id, Name, Phone from Account];
// 取引先情報(sObject[])がMapクラスに変換され、mapに代入される
Map<Id, Account> map = new Map<Id, Account>(list);
Mapクラスのインスタンスから値を取得する方法
get()の引数にキーを指定して、Mapクラスのインスタンスからキーの値を取得します。Map<String, String> map = new Map<String, String>();
map.put('りんご','青森');
map.put('バナナ','フィリピン');
// keySet()を利用し、mapのすべてのキーを配列で取得する
// 拡張for文にキーの配列を設定し、キーを1つずつ取り出す
for(String key: map.keySet()) {
// キーの値を取得する
System.debug(map.get(key));
}
Mapクラスのインスタンスから要素を削除する方法
SalesforceのMapクラスも、JavaのMapクラス同様にインスタンスから削除する要素の単位ごとに、メソッドが提供されています。削除する要素の単位ごとに削除する方法を解説します。キーを指定して、要素を削除する方法
remove()の引数にキーを指定して、Mapクラスのインスタンスから指定したキーの要素を削除します。Map<String, String> map1 = new Map<String, String>();
map1.put('りんご','青森');
map1.put('バナナ','フィリピン');
// キーが「りんご」の要素を削除される
map1.remove('りんご')
System.debug(map1); // バナナの情報だけが表示される
Mapクラスのインスタンスからすべての要素を削除する方法
clear()の引数にキーを指定して、Mapクラスのインスタンスからすべての要素を削除します。Map<String, String> map = new Map<String, String>();
map.put('りんご','青森');
map.put('バナナ','フィリピン');
// mapからすべての要素を削除される
map.clear()
Mapクラスのインスタンスにキーがあるか、チェックする方法
containsKey()の引数にキーを指定して、指定されたキーがMapクラスのインスタンスに含まれているか、チェックします。指定したキーがインスタンスに含まれている場合、「true」を返却します。Map<String, String> map = new Map<String, String>();
map.put('りんご','青森');
map.put('バナナ','フィリピン');
// mapのキーに「りんご」が含まれているか、チェックされる
System.assertEquals(true, map.containsKey('りんご'));
Mapクラスを使ってみよう
今回は、SalesforceのMapクラスの使い方について紹介しました。SalesforceのMapクラスはキーと値がセットになったコレクション型クラスです。Mapクラスのようなキーと値がセットのコレクション型クラスは、使い方を工夫すると扱いやすいクラスになります。 Apex言語で開発される方は、Mapクラスをぜひ使ってみてください。]]>この記事の監修者・著者
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ
- 2024-06-30キャリアインフラエンジニアはやめとけって本当?きつい理由を口コミを交えて解説
ITエンジニアの派遣を利用したい企業様へ
- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。