метод sort
- [int compare(
- E a,
- E b
override
Сортирует этот список в соответствии с порядком, заданным функцией compare.
Функция compare должна выступать в качестве Comparator.
final numbers = <String>['two', 'three', 'four']; // Sort from shortest to longest. numbers.sort((a, b) => a.length.compareTo(b.length)); print(numbers); // [two, four, three]
Стандартные реализации List используют Comparable.compare, если compare не указан.
final numbers = <int>[13, 2, -11, 0]; numbers.sort(); print(numbers); // [-11, 0, 2, 13]
В этом случае элементы списка должны быть взаимно Comparable.
Comparator может считать объекты равными (возвращать ноль), даже если это разные объекты. Не гарантируется, что функция сортировки будет стабильной, поэтому разные объекты, которые считаются равными, могут располагаться в результате в любом порядке:
final numbers = <String>['one', 'two', 'three', 'four']; numbers.sort((a, b) => a.length.compareTo(b.length)); print(numbers); // [one, two, four, three] OR [two, one, four, three]
Реализация
void sort([int Function(E a, E b)? compare]) {
Sort.sort(this, compare ?? _compareAny);
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-collection/ListMixin/sort.html