Apex-collections
Apex-コレクション
コレクションは、複数のレコードを保存できる変数の一種です。 たとえば、Listは複数のAccountオブジェクトのレコードを保存できます。 次に、すべてのコレクションタイプの詳細な概要を説明します。
リスト
リストには、プリミティブ、コレクション、sObject、ユーザー定義およびApexタイプで作成されたレコードをいくつでも含めることができます。 これはコレクションの最も重要なタイプの1つであり、Listで使用するために特別に調整されたいくつかのシステムメソッドもあります。 リストインデックスは常に0で始まります。 これは、Javaの配列と同義です。 リストは、キーワード「List」で宣言する必要があります。
例
以下は、プリミティブデータタイプ(文字列)のリスト、つまり都市のリストを含むリストです。
listの初期値の宣言はオプションです。 ただし、ここで初期値を宣言します。 以下は同じことを示す例です。
アカウントのリスト(sObject)
ネストされたリストも宣言できます。 最大5つのレベルに移動できます。 これは多次元リストと呼ばれます。
これは整数のセットのリストです。
リストには任意の数のレコードを含めることができますが、パフォーマンスの問題とリソースの独占を防ぐために、ヒープサイズに制限があります。
リストのメソッド
リストのサイズの計算、要素の追加などの機能を実現するためにプログラミング中に利用できるリストのメソッドがあります。
以下は、最も頻繁に使用されるいくつかの方法です-
- サイズ()
- add()
- 取得する()
- clear()
- セット()
次の例は、これらすべての方法の使用法を示しています
以下に示すように、リストを宣言するためにも配列表記を使用できますが、これはApexプログラミングの一般的な方法ではありません-
Sets
セットは、複数の番号なしの一意のレコードを含むコレクションタイプです。 セットに重複レコードを含めることはできません。 リストと同様に、セットはネストできます。
例
会社が販売している製品のセットを定義します。
セットのメソッド
セットは、以下に示すようにプログラミング中に利用できるメソッドをサポートします(上記の例を拡張しています)-
Maps
これは、各値の一意のキーを含むキーと値のペアです。 キーと値の両方に任意のデータ型を使用できます。
例
次の例は、製品コードと製品名のマップを表しています。
マップのメソッド
以下は、Mapで使用できるメソッドを示すいくつかの例です-
マップ値は順序付けられていない可能性があるため、値が格納されている順序に依存してはならず、常にキーを使用してマップにアクセスしようとします。 マップ値はヌルにすることができます。 Stringを宣言するときのマップキーでは大文字と小文字が区別されます。たとえば、ABCとabcは異なるキーと見なされ、一意として扱われます。