在Dart中,你可以使用List
的sort()
方法对集合数组进行排序。要按降序排列,可以在排序方法中指定一个自定义的比较函数。以下是一种常见的降序排序方法:
List<int> numbers = [3, 1, 4, 2, 5];
numbers.sort((a, b) => b.compareTo(a));
print(numbers); // [5, 4, 3, 2, 1]
在上述示例中,我们有一个整数类型的列表 numbers
,然后我们使用sort()
方法对其进行排序。使用自定义的比较函数 (a, b) => b.compareTo(a)
,其中 b.compareTo(a)
返回一个负数、零或正数来指示 b
应该排在 a
之前、同时、或之后。这样就实现了按降序排序。
运行上述代码会输出 [5, 4, 3, 2, 1]
,说明列表已按降序排列。
你还可以使用箭头函数的缩写方式进一步简化代码:
List<int> numbers = [3, 1, 4, 2, 5];
numbers.sort((a, b) => b - a);
print(numbers); // [5, 4, 3, 2, 1]
在这种情况下,b - a
的结果将直接用作比较函数的返回值。
请注意,上述排序方法会改变原始的列表顺序。如果你想创建排序后的新列表而不改变原始列表,可以通过List
类的toList()
方法创建一个副本,然后对副本进行排序:
List<int> numbers = [3, 1, 4, 2, 5];
List<int> sortedNumbers = List.from(numbers)..sort((a, b) => b.compareTo(a));
print(sortedNumbers); // [5, 4, 3, 2, 1]
print(numbers); // [3, 1, 4, 2, 5] (原始列表顺序未改变)
在这个示例中,我们使用 List.from()
方法创建了一个 sortedNumbers
的副本来进行排序,而原始的 numbers
列表保持不变。