この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Map クラス

Map コレクション型のメソッドが含まれます。

名前空間

System

使用方法

Map メソッドはすべてインスタンスメソッドで、対応付けの特定のインスタンスで動作します。次に、Map のインスタンスメソッドを示します。

  • 対応付けのキーと値には、プリミティブ型、コレクション型、sObject 型、ユーザ定義型、組み込み Apex 型のいずれかのデータ型を使用できます。
  • 対応付けのユーザ定義型キーの一意性は、クラスで提供する equals メソッドと hashCode メソッドによって判断されます。sObject キーなど、その他のすべての非プリミティブ型のキーの一意性は、オブジェクト項目の値の比較によって判断されます。
  • String 型の対応付けキーでは、大文字と小文字が区別されます。大文字と小文字のみが異なる 2 つのキーは一意であるとみなされ、それぞれに別個の対応付けエントリがあります。したがって、putgetcontainsKey、および remove などの Map メソッドでは、これらのキーが別個のものとして処理されます。

メモ

Map についての詳細は、対応付けを参照してください。

Map コンストラクタ

Map のコンストラクタは次のとおりです。

Map<T1, T2>()

Map クラスの新しいインスタンスを作成します。T1 はキーのデータ型で、T2 は値のデータ型です。

署名

public Map<T1,T2>()

1swfobject.registerObject("clippy.codeblock-0", "9");Map<Integer, String> m1 = new Map<Integer, String>();
2m1.put(1, 'First item');
3m1.put(2, 'Second item');
4

Map<T1, T2>(Map<T1, T2>)

Map クラスの新しいインスタンスを作成し、指定されたマップからエントリをコピーしてそのインスタンスを初期化します。T1 はキーのデータ型で、T2 は値のデータ型です。

署名

public Map<T1,T2>(Map<T1,T2> mapToCopy)

パラメータ

mapToCopy
型: Map<T1, T2>
この対応付けの初期化に使用する対応付け。T1 はキーのデータ型で、T2 は値のデータ型です。すべての対応付けのキーおよび値はこの対応付けにコピーされます。

1swfobject.registerObject("clippy.codeblock-1", "9");Map<Integer, String> m1 = new Map<Integer, String>();
2m1.put(1, 'First item');
3m1.put(2, 'Second item');
4Map<Integer, String> m2 = new Map<Integer, String>(m1);
5// The map elements of m2 are copied from m1
6System.debug(m2);

Map<ID, sObject>(List<sObject>)

Map クラスの新しいインスタンスを作成し、そのインスタンスに渡された sObject レコードリストを入力します。キーには sObject ID が入力されます。その値は sObject です。

署名

public Map<ID,sObject>(List<sObject> recordList)

パラメータ

recordList
型: List<sObject>
対応付けに入力される sObject のリスト。

1swfobject.registerObject("clippy.codeblock-2", "9");List<Account> ls = [select Id,Name from Account];
2Map<Id, Account> m = new Map<Id, Account>(ls);

Map メソッド

Map のメソッドは次のとおりです。すべてインスタンスメソッドです。

clear()

対応付けからすべてのキーと値の対応付けを削除します。

署名

public Void clear()

戻り値

型: Void

clone()

対応付けの重複コピーを作成します。

署名

public Map<Object, Object> clone()

戻り値

型: Map (同じデータ型)

使用方法

これが sObject レコード値の対応付けである場合、重複対応付けは対応付けの浅いコピーとなります。つまり、重複には各 sObject レコードへの参照がありますが、レコード自体は重複しません。次に例を示します。

sObject レコードもコピーするには、deepClone メソッドを使用する必要があります。

1Account a = new Account(
2   Name='Acme', 
3   BillingCity='New York');
4
5Map<Integer, Account> map1 = 
6   new Map<Integer, Account> {};
7map1.put(1, a);
8
9Map<Integer, Account> map2 = 
10   map1.clone();
11map1.get(1).BillingCity = 
12'San Francisco';
13
14System.assertEquals(
15   map1.get(1).BillingCity,
16   'San Francisco');
17
18System.assertEquals(
19   map2.get(1).BillingCity,
20   'San Francisco');

containsKey(Object)

指定されたキーの対応付けが含まれている場合は true を返します。

署名

public Boolean containsKey(Object key)

パラメータ

key
型: Object

戻り値

型: Boolean

使用方法

キーが String の場合、キーの値では大文字と小文字が区別されます。

1Map<string, string> colorCodes = 
2   new Map<String, String>();
3
4colorCodes.put('Red', 'FF0000');
5colorCodes.put('Blue', '0000A0');
6
7Boolean contains = 
8   colorCodes.containsKey('Blue');
9System.assertEquals(contains, True);

deepClone()

sObject レコード値との対応付けの場合、sObject レコードを含む、対応付けの重複コピーを作成します。

署名

public Map<Object, Object> deepClone()

戻り値

型: Map (of the same type)

使用方法

含まれる sObject レコードが重複しないようにして、対応付けの浅いコピーを作成するには、clone() メソッドを使用します。

1Account a = new Account(
2   Name='Acme', 
3   BillingCity='New York');
4
5Map<Integer, Account> map1 = 
6   new Map<Integer, Account> {};
7
8map1.put(1, a);
9
10Map<Integer, Account> map2 = 
11   map1.deepClone();
12
13map1.get(1).BillingCity = 
14   'San Francisco';
15
16System.assertEquals(map1.get(1).
17   BillingCity, 'San Francisco');
18
19System.assertEquals(map2.get(1).
20   BillingCity, 'New York');

equals(Map)

この対応付けと指定された対応付けを比較し、両方の対応付けが等しい場合は true を返し、そうでない場合は false を返します。

署名

public Boolean equals(Map map2)

パラメータ

map2
型: Map
map2 引数は、この対応付けと比較する対応付けです。

戻り値

型: Boolean

使用方法

キー/値ペアが同一である場合は、それらの順序に関係なく、2 つの対応付けは等しくなります。== 演算子は、対応付けのキーおよび値を比較するために使用します。

== 演算子は、equals メソッドのコールに相当します。そのため、map1 == map2; ではなく map1.equals(map2); をコールできます。

get(Object)

指定したキーが対応付けられている値または、このキーの対応付けに値が含まれていない場合は null を返します。

署名

public Object get(Object key)

パラメータ

key
型: Object

戻り値

型: Object

使用方法

キーが String の場合、キーの値では大文字と小文字が区別されます。

1Map<String, String> colorCodes = 
2   new Map<String, String>();
3
4colorCodes.put('Red', 'FF0000');
5colorCodes.put('Blue', '0000A0');
6
7String code = 
8   colorCodes.get('Blue');
9
10System.assertEquals(code, '0000A0');
11
12// The following is not a color 
13// in the map 
14String code2 = 
15   colorCodes.get('Magenta');
16
17System.assertEquals(code2, null);

getSObjectType()

Map 値を構成する sObject データ型のトークンを返します。

署名

public Schema.SObjectType getSObjectType()

戻り値

型: Schema.SObjectType

使用方法

このメソッドを Describe Information と共に使用して、対応付けに特定のデータ型の sObject を含めるかどうかを指定します。

このメソッドは sObject 値を持つ対応付けでのみ使用できます。

詳細は、Apex Describe Information についてを参照してください。

1Account a = new Account(
2   Name='Acme');
3insert a;
4
5// Create a generic sObject 
6// variable s
7SObject s = Database.query
8   ('SELECT Id FROM Account ' + 
9    'LIMIT 1');
10
11// Verify if that sObject 
12// variable 
13// is an Account token
14System.assertEquals(
15   s.getSObjectType(), 
16   Account.sObjectType);
17
18// Create a map of generic 
19// sObjects 
20Map<Integer, Account> M = 
21   new Map<Integer, Account>();
22
23// Verify if the list of sObjects
24// contains Account tokens
25System.assertEquals(
26   M.getSObjectType(), 
27   Account.sObjectType);

hashCode()

この対応付けに対応する hashcode を返します。

署名

public Integer hashCode()

戻り値

型: Integer

isEmpty()

対応付けのキーと値のペアが 0 の場合、true を返します。

署名

public Boolean isEmpty()

戻り値

型: Boolean

1Map<String, String> colorCodes = 
2   new Map<String, String>();
3Boolean empty = colorCodes.isEmpty();
4system.assertEquals(empty, true);

keySet()

対応付けのすべてのキーを含むセットを返します。

署名

public Set<Object> keySet()

戻り値

型: Set (of key type)

1Map<String, String> colorCodes = 
2   new Map<String, String>();
3
4colorCodes.put('Red', 'FF0000');
5colorCodes.put('Blue', '0000A0');
6
7Set <String> colorSet = new Set<String>();
8colorSet = colorCodes.keySet();

put(Object, Object)

指定された値を対応付けの指定したキーに関連付けます。

署名

public Object put(Object key, Object value)

パラメータ

key
型: Object
value
型: Object

戻り値

型: Object

使用方法

対応付けにこのキーの対応付けが以前含まれていた場合、以前の値はメソッドで返され、その後置き換えられます。

キーが String の場合、キーの値では大文字と小文字が区別されます。

1Map<String, String> colorCodes = 
2   new Map<String, String>();
3
4colorCodes.put('Red', 'ff0000');
5colorCodes.put('Red', '#FF0000');
6// Red is now #FF0000

putAll(Map)

指定先の対応付けからすべての対応付けを、元の対応付けにコピーします。

署名

public Void putAll(Map fromMap)

パラメータ

fromMap
型: Map

戻り値

型: Void

使用方法

fromMap からの新しい対応付けによって、元の対応付けは置き換えられます。

putAll(sObject[])

sObject レコードのリストを、Map<ID, sObject>、または Map<String, sObject> として宣言されている対応付けに追加します。

署名

public putAll(sObject[] sobjectArray)

パラメータ

sobjectArray
型: sObject[]

戻り値

型:

使用方法

このメソッドは、同じ入力の Map コンストラクタのコールと類似しています。

remove(Key)

指定されたキーの対応付けを対応付けから削除し、対応する値がある場合は、その値を返します。

署名

public Object remove(Key key)

パラメータ

key
型: Key

戻り値

型: Object

使用方法

キーが String の場合、キーの値では大文字と小文字が区別されます。

1Map<String, String> colorCodes = 
2   new Map<String, String>();
3
4colorCodes.put('Red', 'FF0000');
5colorCodes.put('Blue', '0000A0');
6
7String myColor = colorCodes.remove('Blue');
8String code2 = 
9   colorCodes.get('Blue');
10
11System.assertEquals(code2, null);

size()

対応付けのキー-値のペアの数を返します。

署名

public Integer size()

戻り値

型: Integer

1Map<String, String> colorCodes = 
2   new Map<String, String>();
3
4colorCodes.put('Red', 'FF0000');
5colorCodes.put('Blue', '0000A0');
6
7Integer mSize = colorCodes.size();
8system.assertEquals(mSize, 2);

values()

対応付けのすべての値を含むリストを順不同で返します。

署名

public List<Object> values()

戻り値

型: List<Object>

1Map<String, String> colorCodes = 
2   new Map<String, String>();
3
4colorCodes.put('Red', 'FF0000');
5colorCodes.put('Blue', '0000A0');
6
7List<String> colors = new List<String>();
8colors = colorCodes.values();