Flutterのリスト操作メソッドの一つである.sort
メソッドは、リスト内の要素を指定された順序で並び替える際に非常に便利です。
.sortメソッドとは?
.sort
メソッドは、リスト内の要素を指定された順序でソート(並び替え)するためのメソッドです。基本的な構文は以下の通りです。
list.sort((a, b) => /* 比較式 */);
基本的な使い方
まずは、簡単な例から始めましょう。以下は、数値のリストを昇順にソートする例です。
List<int> numbers = [5, 2, 8, 1, 3];
numbers.sort((a, b) => a - b);
print(numbers); // [1, 2, 3, 5, 8]
このコードでは、比較式 a - b
によって数値が昇順でソートされています。
降順でソートする場合
降順でソートするには、比較式を b - a
とすることで実現できます。
List<int> numbers = [5, 2, 8, 1, 3];
numbers.sort((a, b) => b - a);
print(numbers); // [8, 5, 3, 2, 1]
カスタムオブジェクトのリストをソートする
.sort
メソッドは、カスタムオブジェクトのリストもソートすることができます。例えば、Personクラスを持つリストを名前でソートする場合:
class Person {
String name;
int age;
Person(this.name, this.age);
}
List<Person> people = [
Person('Alice', 30),
Person('Bob', 25),
Person('Charlie', 35),
];
people.sort((a, b) => a.name.compareTo(b.name));
print(people.map((person) => person.name).toList()); // ['Alice', 'Bob', 'Charlie']
この例では、.sort
メソッドに name
プロパティを比較する compareTo
メソッドを使って、名前で昇順にソートしています。
注意点
.sort
メソッドは元のリストを変更する点に留意してください。ソートした新しいリストを作成したい場合は、元のリストをコピーしてからソートするか、List.from
メソッドを使用して新しいリストを生成してからソートします。
List<int> originalList = [5, 2, 8, 1, 3];
List<int> sortedList = List.from(originalList)..sort();
print(originalList); // [5, 2, 8, 1, 3]
print(sortedList); // [1, 2, 3, 5, 8]
まとめ
.sort
メソッドは、Flutterの開発者にとって非常に重要なソート機能を提供しています。数値や文字列だけでなく、カスタムオブジェクトのリストも柔軟にソートできるため、様々なシーンで活用できます。.sort
メソッドを上手に利用して、効率的で見やすいコードを作成しましょう。