Salesforce Apex |【入門】 配列とリストの使い方や違いについて

【前置き】配列とリストについて

プログラミングにおける配列とリストについて、違いをご存知でしょうか?

一般的な配列とは、予め格納するデータの長さが決まっているコレクションであり、
反対にリストは、格納するデータの長さが決まっていないコレクションであります。

例えば、C#言語では以下のように配列とリストの宣言を分けています。

/*配列の宣言方法*/
string[] index = new string[5];

/*リストの宣言方法*/
List<string> index = new List<string>();

Salesforce Apex言語での配列とリストについて

結論から言うとSalesforce Apex言語では、配列とリストどちらもList型を用いて宣言します

少しややこしいですが、Apexには配列とリストの考え方は存在しますが、
その宣言方法がJavaやC#と多少異なります。
(ApexではJavaやC#と同じようにリスト・配列を宣言することも可能です。)

List型を用いたリストと配列の宣言方法

次に宣言方法を見ていきましょう。
Apexでは以下の書き方で配列・リストを宣言することができます。
JavaやC#を学習したことがある人は少し違和感を覚えるかもしれませんが、
これがApexの特徴として認識しましょう。

/*リストの宣言方法*/
List<String> index = new List<String>();

/*配列の宣言方法*/
List<String> index = new String[5];

リストの宣言方法はJava・C#と変わりませんが、配列の宣言方法はApex独自のものになっています。

もう一つの配列の宣言方法

Apex言語では、配列宣言に対してもう一つの宣言方法があります。

/*もう一つの配列宣言方法*/
String[] index = new String[5];

C#やJavaを学習したことがある人は、こちらの宣言の方が馴染み深いかもしれません。
Apex独自の配列の宣言とJavaやC#をモデルにした配列の宣言どちらでも
Apex言語での動作は同じとなります。

Apex言語での少し変わった配列の挙動

最初に説明したように、配列とは予め格納するデータの長さが決まっているコレクションですが、
Apex言語では配列の長さを変更することができます。

以下のコードの例を見てみましょう。

/*要素数3つの配列を宣言*/
List<String> fruits = new String[3];

fruits[0] = 'apple';  //0番目の要素に 'apple'を代入
fruits[1] = 'banana'; //1番目の要素に 'banana' を代入

System.debug(fruits); 
/*
    出力結果: DEBUG | {apple, banana, null}
*/


fruits.add('orange'); //fruits配列に 'orange'を追加

System.debug(fruits); 
/*
    出力結果: DEBUG | {apple, banana, null, orange}
*/

fruits配列に要素を指定して代入する挙動は、JavaやC#と変わりませんが、
配列宣言に対して「.add」を使用することができ、配列の要素数を増やすことができます。

こうなってくると、もはや配列ではなくリストの挙動になっています。

まとめ

Apex言語でのリストはJavaやC#の挙動と変わりませんが、
配列の挙動は、後から要素数を増やすことができます。

少しややこしいですが考え方として
配列の宣言に対して「.add」を使用した時点で、宣言した配列はリストに変わる
という認識で良いと思います。

Apex:リスト関連記事

タイトルとURLをコピーしました