No Results
Search Tips:
- Please consider misspellings
- Try different search keywords
List クラス
名前空間
使用方法
List メソッドはすべてインスタンスメソッドで、リストの特定のインスタンスで動作します。たとえば、次のコードは myList からすべての要素を削除します。
1myList.clear();clear メソッドにはパラメータは含まれませんが、それをコールするリスト自身が暗黙的なパラメータです。
List についての詳細は、「Lists」を参照してください。
List コンストラクタ
List のコンストラクタは次のとおりです。
List<T>()
署名
public List<T>()
例
1swfobject.registerObject("clippy.codeblock-1", "9");// Create a list
2List<Integer> ls1 = new List<Integer>();
3// Add two integers to the list
4ls1.add(1);
5ls1.add(2);
6List<T>(List<T>)
署名
public List<T>(List<T> listToCopy)
パラメータ
- listToCopy
- 型: List<T>
- このリストの初期化に使用される要素を含むリスト。T はリスト要素のデータ型です。
例
1swfobject.registerObject("clippy.codeblock-2", "9");List<Integer> ls1 = new List<Integer>();
2ls1.add(1);
3ls1.add(2);
4// Create a list based on an existing one
5List<Integer> ls2 = new List<Integer>(ls1);
6// ls2 elements are copied from ls1
7System.debug(ls2);// DEBUG|(1, 2)List<T>(Set<T>)
署名
public List<T>(Set<T> setToCopy)
パラメータ
- setToCopy
- 型: Set<T>
- このリストの初期化で使用する要素を含むセット。T はセット要素のデータ型です。
例
1swfobject.registerObject("clippy.codeblock-3", "9");Set<Integer> s1 = new Set<Integer>();
2s1.add(1);
3s1.add(2);
4// Create a list based on a set
5List<Integer> ls = new List<Integer>(s1);
6// ls elements are copied from s1
7System.debug(ls);// DEBUG|(1, 2)List メソッド
List のメソッドは次のとおりです。すべてインスタンスメソッドです。
add(Object)
署名
public Void add(Object listElement)
パラメータ
- listElement
- 型: Object
戻り値
型: Void
例
1List<Integer> myList = new List<Integer>();
2myList.add(47);
3Integer myNumber = myList.get(0);
4system.assertEquals(myNumber, 47);add(Integer, Object)
署名
public Void add(Integer index, Object listElement)
パラメータ
- index
- 型: Integer
- listElement
- 型: Object
戻り値
型: Void
例
次の例では 6 つの要素を持つリストが作成され、最初と 2 番目のインデックス位置に整数が追加されます。
1List<Integer> myList = new Integer[6];
2myList.add(0, 47);
3myList.add(1, 52);
4system.assertEquals(myList.get(1), 52);addAll(List)
署名
public Void addAll(List fromList)
パラメータ
- fromList
- 型: List
戻り値
型: Void
addAll(Set)
署名
public Void addAll(Set fromSet)
パラメータ
- fromSet
- 型: Set
戻り値
型: Void
clone()
署名
public List<Object> clone()
戻り値
型: List<Object>
使用方法
コピーされたリストは、現在のリストと同じデータ型です。
これが sObject レコードのリストである場合、重複リストはリストの浅いコピーとなります。つまり、重複には各オブジェクトへの参照がありますが、sObject レコード自体は重複しません。次に例を示します。
sObject レコードもコピーするには、deepClone メソッドを使用する必要があります。
例
1Account a = new
2 Account(Name='Acme',
3 BillingCity='New York');
4
5Account b = new Account();
6Account[] q1 = new
7 Account[]{a,b};
8
9Account[] q2 = q1.clone();
10q1[0].BillingCity = 'San Francisco';
11
12System.assertEquals(
13 q1[0].BillingCity,
14 'San Francisco');
15System.assertEquals(
16 q2[0].BillingCity,
17 'San Francisco');deepClone(Boolean, Boolean, Boolean)
署名
public List<Object> deepClone(Boolean opt_preserve_id, Boolean opt_preserve_readonly_timestamps, Boolean opt_preserve_autonumber)
パラメータ
- opt_preserve_id
- 型: Boolean
- (省略可能) opt_preserve_id 引数は、元のオブジェクトの ID を重複で保持するか削除するかを指定します。true に設定すると、ID はコピーされたオブジェクトにコピーされます。デフォルトは false であるため、ID はクリアされます。
- opt_preserve_readonly_timestamps
- 型: Boolean
- (省略可能) opt_preserve_readonly_timestamps 引数は、参照のみのタイムスタンプとユーザ ID 項目を重複で保持するか削除するかを指定します。true に設定すると、参照のみの項目 CreatedById、CreatedDate、LastModifiedById、および LastModifiedDate は、コピーされたオブジェクトにコピーされます。デフォルトは false であるため、値はクリアされます。
- opt_preserve_autonumber
- 型: Boolean
- (省略可能) opt_preserve_autonumber 引数は、元のオブジェクトの自動採番項目を重複で保持するか削除するかを指定します。true に設定すると、自動採番項目はコピーされたオブジェクトにコピーされます。デフォルトは false であるため、自動採番項目はクリアされます。
戻り値
型: List<Object>
使用方法
返されたリストは、現在のリストと同じデータ型です。
含まれる sObject レコードが重複しないようにしてリストの浅いコピーを作成するには、clone メソッドを使用します。
例
この例は、2 つの取引先を含むリストのディープコピーを実行します。
1Account a = new
2 Account(Name='Acme',
3 BillingCity='New York');
4
5Account b = new Account(
6 Name='Salesforce');
7
8Account[] q1 = new
9 Account[]{a,b};
10
11Account[] q2 = q1.deepClone();
12q1[0].BillingCity = 'San Francisco';
13
14System.assertEquals(
15 q1[0].BillingCity,
16 'San Francisco');
17
18System.assertEquals(
19 q2[0].BillingCity,
20 'New York');1insert q1;
2
3List<Account> accts =
4 [SELECT CreatedById,
5 CreatedDate, LastModifiedById,
6 LastModifiedDate, BillingCity
7 FROM Account
8 WHERE Name='Acme' OR
9 Name='Salesforce'];
10
11// Clone list while preserving
12// timestamp and user ID fields.
13Account[] q3 =
14 accts.deepClone(false,true,false);
15
16// Verify timestamp fields are
17// preserved for the first
18// list element.
19System.assertEquals(
20 q3[0].CreatedById,
21 accts[0].CreatedById);
22System.assertEquals(
23 q3[0].CreatedDate,
24 accts[0].CreatedDate);
25System.assertEquals(
26 q3[0].LastModifiedById,
27 accts[0].LastModifiedById);
28System.assertEquals(
29 q3[0].LastModifiedDate,
30 accts[0].LastModifiedDate);equals(List)
署名
public Boolean equals(List list2)
パラメータ
- list2
- 型: List
- このリストと比較するリストです。
戻り値
型: Boolean
使用方法
それぞれの要素が等しく、要素の順序が同じである場合、2 つのリストは等しくなります。== 演算子は、リストの要素を比較するために使用します。
== 演算子は、equals メソッドのコールに相当します。そのため、list1 == list2; の代わりに list1.equals(list2); をコールできます。
get(Integer)
署名
public Object get(Integer index)
パラメータ
- index
- 型: Integer
戻り値
型: Object
使用方法
プリミティブデータ型または sObject 型の一次元リストの要素を参照するには、次の例に示すように、リスト名の後に要素のインデックス位置を角括弧で囲んで表記することもできます。
例
1List<Integer> myList = new List<Integer>();
2myList.add(47);
3Integer myNumber = myList.get(0);
4system.assertEquals(myNumber, 47);1List<String> colors = new String[3];
2colors[0] = 'Red';
3colors[1] = 'Blue';
4colors[2] = 'Green';getSObjectType()
署名
public Schema.SObjectType getSObjectType()
戻り値
使用方法
このメソッドを Describe Information と共に使用して、リストに特定のデータ型の sObject を含めるかどうかを指定します。
このメソッドは sObject で構成されているリストでのみ使用できます。
詳細は、「Apex Describe Information について」を参照してください。
例
1Account a = new Account(name='test');
2insert a;
3// Create a generic sObject
4// variable s
5SObject s = Database.query
6 ('SELECT Id FROM Account ' +
7 'LIMIT 1');
8
9// Verify if that sObject
10// variable is
11// an Account token
12System.assertEquals(
13 s.getSObjectType(),
14 Account.sObjectType);
15
16// Create a list of
17// generic sObjects
18List<sObject> q =
19 new Account[]{};
20
21// Verify if the list of
22// sObjects
23// contains Account tokens
24System.assertEquals(
25 q.getSObjectType(),
26 Account.sObjectType);iterator()
署名
public Iterator iterator()
戻り値
型: Iterator
例
1swfobject.registerObject("clippy.IterableExampleCRM", "9");global class CustomIterable
2 implements Iterator<Account>{
3
4 List<Account> accs {get; set;}
5 Integer i {get; set;}
6
7 public CustomIterable(){
8 accs =
9 [SELECT Id, Name,
10 NumberOfEmployees
11 FROM Account
12 WHERE Name = 'false'];
13 i = 0;
14 }
15
16 global boolean hasNext(){
17 if(i >= accs.size()) {
18 return false;
19 } else {
20 return true;
21 }
22 }
23
24 global Account next(){
25 // 8 is an arbitrary
26 // constant in this example
27 // that represents the
28 // maximum size of the list.
29 if(i == 8){return null;}
30 i++;
31 return accs[i-1];
32 }
33}remove(Integer)
署名
public Object remove(Integer index)
パラメータ
- index
- 型: Integer
戻り値
型: Object
例
1List<String> colors = new String[3];
2colors[0] = 'Red';
3colors[1] = 'Blue';
4colors[2] = 'Green';
5String S1 = colors.remove(2);
6system.assertEquals(S1, 'Green');set(Integer, Object)
署名
public Void set(Integer index, Object listElement)
パラメータ
- index
- 型: Integer
- 設定するリスト要素のインデックスです。
- listElement
- 型: Object
- 設定するリスト要素の値です。
戻り値
型: Void
使用方法
プリミティブデータ型または sObject の一次元リストの要素を設定するには、リスト名の後に要素のインデックス位置を角括弧で囲んで表記することもできます。
例
1List<Integer> myList = new Integer[6];
2myList.set(0, 47);
3myList.set(1, 52);
4system.assertEquals(myList.get(1), 52);1List<String> colors = new String[3];
2colors[0] = 'Red';
3colors[1] = 'Blue';
4colors[2] = 'Green';size()
署名
public Integer size()
戻り値
型: Integer
例
1List<Integer> myList = new List<Integer>();
2Integer size = myList.size();
3system.assertEquals(size, 0);
4
5List<Integer> myList2 = new Integer[6];
6Integer size2 = myList2.size();
7system.assertEquals(size2, 6);sort()
署名
public Void sort()
戻り値
型: Void
使用方法
次の例で、リストには 3 つの要素があります。リストを並び替えると、最初の要素には値が割り当てられていないため null、2 番目の要素の値は 5 になります。
例
1List<Integer> q1 = new Integer[3];
2
3// Assign values to the first
4// two elements
5q1[0] = 10;
6q1[1] = 5;
7
8q1.sort();
9// First element is null, second is 5
10system.assertEquals(q1.get(1), 5);