Newer Version Available
Map クラス
名前空間
使用方法
Map メソッドはすべてインスタンスメソッドで、対応付けの特定のインスタンスで動作します。次に、Map のインスタンスメソッドを示します。
Map についての詳細は、「対応付け」を参照してください。
Map コンストラクタ
Map のコンストラクタは次のとおりです。
Map<T1, T2>()
署名
public Map<T1,T2>()
例
1Map<Integer, String> m1 = new Map<Integer, String>();
2m1.put(1, 'First item');
3m1.put(2, 'Second item');Map<T1,T2>(mapToCopy)
署名
public Map<T1,T2>(Map<T1,T2> mapToCopy)
パラメータ
- mapToCopy
- 型: Map<T1, T2>
- この対応付けの初期化に使用する対応付け。T1 はキーのデータ型で、T2 は値のデータ型です。すべての対応付けのキーおよび値はこの対応付けにコピーされます。
例
1Map<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>(recordList)
署名
public Map<ID,sObject>(List<sObject> recordList)
パラメータ
- recordList
- 型: List<sObject>
- 対応付けに入力される sObject のリスト。
例
1List<Account> ls = [select Id,Name from Account];
2Map<Id, Account> m = new Map<Id, Account>(ls);Map メソッド
Map のメソッドは次のとおりです。すべてインスタンスメソッドです。
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 = new Map<Integer, Account> {};
6map1.put(1, a);
7
8Map<Integer, Account> map2 = map1.clone();
9map1.get(1).BillingCity =
10'San Francisco';
11
12System.assertEquals(
13 'San Francisco',
14 map1.get(1).BillingCity);
15
16System.assertEquals(
17 'San Francisco',
18 map2.get(1).BillingCity);containsKey(key)
署名
public Boolean containsKey(Object key)
パラメータ
- key
- 型: Object
戻り値
型: Boolean
使用方法
キーが String の場合、キーの値では大文字と小文字が区別されます。
例
1Map<String, String> colorCodes = new Map<String, String>();
2
3colorCodes.put('Red', 'FF0000');
4colorCodes.put('Blue', '0000A0');
5
6Boolean contains = colorCodes.containsKey('Blue');
7System.assertEquals(true, contains);deepClone()
署名
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 = new Map<Integer, Account> {};
6
7map1.put(1, a);
8
9Map<Integer, Account> map2 = map1.deepClone();
10
11// Update the first entry of map1
12map1.get(1).BillingCity = 'San Francisco';
13// Verify that the BillingCity is updated in map1 but not in map2
14System.assertEquals('San Francisco', map1.get(1).BillingCity);
15System.assertEquals('New York', map2.get(1).BillingCity);equals(map2)
署名
public Boolean equals(Map map2)
パラメータ
- map2
- 型: Map
- map2 引数は、この対応付けと比較する対応付けです。
戻り値
型: Boolean
使用方法
キー/値ペアが同一である場合は、それらの順序に関係なく、2 つの対応付けは等しくなります。== 演算子は、対応付けのキーおよび値を比較するために使用します。
== 演算子は、equals メソッドのコールに相当します。そのため、map1 == map2; ではなく map1.equals(map2); をコールできます。
get(key)
署名
public Object get(Object key)
パラメータ
- key
- 型: Object
戻り値
型: Object
使用方法
キーが String の場合、キーの値では大文字と小文字が区別されます。
例
1Map<String, String> colorCodes = new Map<String, String>();
2
3colorCodes.put('Red', 'FF0000');
4colorCodes.put('Blue', '0000A0');
5
6String code = colorCodes.get('Blue');
7
8System.assertEquals('0000A0', code);
9
10// The following is not a color in the map
11String code2 = colorCodes.get('Magenta');
12System.assertEquals(null, code2);getSObjectType()
署名
public Schema.SObjectType getSObjectType()
戻り値
使用方法
このメソッドを Describe Information と共に使用して、対応付けに特定のデータ型の sObject を含めるかどうかを指定します。
このメソッドは sObject 値を持つ対応付けでのみ使用できます。
詳細は、「Apex Describe Information について」を参照してください。
例
1// Create a generic sObject variable.
2SObject sObj = Database.query('SELECT Id FROM Account LIMIT 1');
3
4// Verify if that sObject variable is an Account token.
5System.assertEquals(
6 Account.sObjectType,
7 sObj.getSObjectType());
8
9// Create a map of generic sObjects
10Map<Integer, Account> m = new Map<Integer, Account>();
11
12// Verify if the map contains Account tokens.
13System.assertEquals(
14 Account.sObjectType,
15 m.getSObjectType());isEmpty()
署名
public Boolean isEmpty()
戻り値
型: Boolean
例
1Map<String, String> colorCodes = new Map<String, String>();
2Boolean empty = colorCodes.isEmpty();
3System.assertEquals(true, empty);keySet()
署名
public Set<Object> keySet()
戻り値
型: Set (of key type)
例
1Map<String, String> colorCodes = new Map<String, String>();
2
3colorCodes.put('Red', 'FF0000');
4colorCodes.put('Blue', '0000A0');
5
6Set <String> colorSet = new Set<String>();
7colorSet = colorCodes.keySet();put(key, value)
署名
public Object put(Object key, Object value)
パラメータ
- key
- 型: Object
- value
- 型: Object
戻り値
型: Object
使用方法
対応付けにこのキーの対応付けが以前含まれていた場合、以前の値はメソッドで返され、その後置き換えられます。
キーが String の場合、キーの値では大文字と小文字が区別されます。
例
1Map<String, String> colorCodes = new Map<String, String>();
2
3colorCodes.put('Red', 'ff0000');
4colorCodes.put('Red', '#FF0000');
5// Red is now #FF0000putAll(fromMap)
署名
public Void putAll(Map fromMap)
パラメータ
- fromMap
- 型: Map
戻り値
型: Void
使用方法
fromMap からの新しい対応付けによって、元の対応付けは置き換えられます。
例
1Map<String, String> map1 = new Map<String, String>();
2map1.put('Red','FF0000');
3Map<String, String> map2 = new Map<String, String>();
4map2.put('Blue','0000FF');
5// Add map1 entries to map2
6map2.putAll(map1);
7System.assertEquals(2, map2.size());putAll(sobjectArray)
署名
public Void putAll(sObject[] sobjectArray)
パラメータ
- sobjectArray
- 型: sObject[]
戻り値
型: Void
使用方法
このメソッドは、同じ入力の Map コンストラクタのコールと類似しています。
例
1List<Account> accts = new List<Account>();
2accts.add(new Account(Name='Account1'));
3accts.add(new Account(Name='Account2'));
4// Insert accounts so their IDs are populated.
5insert accts;
6Map<Id, Account> m = new Map<Id, Account>();
7// Add all the records to the map.
8m.putAll(accts);
9System.assertEquals(2, m.size());remove(key)
署名
public Object remove(Key key)
パラメータ
- key
- 型: Key
戻り値
型: Object
使用方法
キーが String の場合、キーの値では大文字と小文字が区別されます。
例
1Map<String, String> colorCodes = new Map<String, String>();
2
3colorCodes.put('Red', 'FF0000');
4colorCodes.put('Blue', '0000A0');
5
6String myColor = colorCodes.remove('Blue');
7String code2 = colorCodes.get('Blue');
8
9System.assertEquals(null, code2);size()
署名
public Integer size()
戻り値
型: Integer
例
1Map<String, String> colorCodes = new Map<String, String>();
2
3colorCodes.put('Red', 'FF0000');
4colorCodes.put('Blue', '0000A0');
5
6Integer mSize = colorCodes.size();
7system.assertEquals(2, mSize);values()
署名
public List<Object> values()
戻り値
型: List<Object>
使用方法
対応付け要素の順序は確定的です。順序は、同じコードの後続のどの実行でも同じです。たとえば、values() メソッドで、value1 とインデックス 0 および value2 とインデックス 1 を含むリストが返されるとします。その後同じコードを実行した場合も、これらの値が同じ順序で返されます。
例
1Map<String, String> colorCodes = new Map<String, String>();
2
3colorCodes.put('Red', 'FF0000');
4colorCodes.put('Blue', '0000A0');
5
6List<String> colors = new List<String>();
7colors = colorCodes.values();