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

Newer Version Available

This content describes an older version of this product. View Latest

リストの並び替え

要素のデータ型に応じて、リスト要素と順番を並び替えることができます。

List.sort メソッドを使用して、リスト内の要素を並び替えることができます。文��列型などのプリミティブデータ型の要素の場合、並び替えは昇順です。より複雑な他のデータ型の並び替え順序は、それらのデータ型に関する章で説明されています。

この例では、文字列のリストを並び替える順番を示し、リスト内で色が昇順になっていることを確認します。

1List<String> colors = new List<String>{
2    'Yellow',
3    'Red',
4    'Green'};
5colors.sort();
6System.assertEquals('Green', colors.get(0));
7System.assertEquals('Red', colors.get(1));
8System.assertEquals('Yellow', colors.get(2));

Visualforce SelectOption コントロールの場合、並び替えは値項目と表示項目に基づく昇順になります。SelectOption で使用する比較ステップの順序については、次のセクションを参照してください。

SelectOption のデフォルトの並び替え順

List.sort メソッドは、この比較順序に基づいて、値項目と表示ラベル項目を使用して昇順で SelectOption 要素を並び替えます。
  1. 並び替えには最初に値項目が使用されます。
  2. 2 つの値項目が同じ値の場合、または両方とも空の場合、表示ラベル項目が使用されます。

無効になっている項目は並び替えには使用されません。

テキスト項目の場合、並び替えアルゴリズムは Unicode 並び替え順を使用します。また、空の項目は並び替え順で空でない項目より前になります。

次の例では、リストに 3 つの SelectOption 要素が含まれています。United States と Mexico の 2 つの要素には同じ値項目 ('A') があります。List.sort メソッドは表示ラベル項目に基づいて 2 つの要素を並び替え、出力に示されるように Mexico を United States より前に配置します。並び替えられたリストの最後の要素は Canada で、その値項目 'C' は 'A' より後になるためこのように並び替えられています。

1List<SelectOption> options = new List<SelectOption>();
2options.add(new SelectOption('A','United States'));
3options.add(new SelectOption('C','Canada'));
4options.add(new SelectOption('A','Mexico'));
5System.debug('Before sorting: ' + options);
6options.sort();
7System.debug('After sorting: ' + options);

これは debug ステートメントの出力です。並び替え前後のリストの内容が示されています。

1DEBUG|Before sorting: (System.SelectOption[value="A", label="United States", disabled="false"], 
2  System.SelectOption[value="C", label="Canada", disabled="false"], 
3  System.SelectOption[value="A", label="Mexico", disabled="false"])
4DEBUG|After sorting: (System.SelectOption[value="A", label="Mexico", disabled="false"], 
5  System.SelectOption[value="A", label="United States", disabled="false"], 
6  System.SelectOption[value="C", label="Canada", disabled="false"])