リストの並び替え
要素のデータ型に応じて、リスト要素と順番を並び替えることができます。
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 要素を並び替えます。
- 並び替えには最初に値項目が使用されます。
- 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"])