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实现如果省略了compare
,则使用Comparable.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);
}