【Flutter】Flutterの.sortを理解しよう

Flutter

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メソッドを上手に利用して、効率的で見やすいコードを作成しましょう。

Buy me a coffee!

Flutterアプリ開発
シェアする
sogaをフォローする
タイトルとURLをコピーしました