Метод 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.18.5/dart-collection/ListMixin/sort.html