📜  dart 列表按值排序 - Dart (1)

📅  最后修改于: 2023-12-03 15:00:20.306000             🧑  作者: Mango

Dart 列表按值排序

在 Dart 中,对列表进行排序有两种方法:按值排序和按顺序排序。本文将介绍如何按值对 Dart 列表进行排序。

准备工作

在开始排序之前,需要先创建一个列表并向其中添加一些元素。下面是一个示例:

List<int> numbers = [5, 2, 8, 1, 9, 0, 3];
如何按值排序

Dart 提供了 sort() 方法用于按值排序列表。该方法没有返回值,它直接修改原始列表。可以向 sort() 方法传递一个函数用于比较列表中的两个元素。比较函数应该接受两个参数,并返回一个整数,表示两个参数之间的比较结果。

下面是一个使用 sort() 方法按升序排序的示例:

numbers.sort((a, b) => a.compareTo(b));

这里使用了 Dart 的 compareTo() 方法进行比较。如果元素 a 小于元素 b,则 compareTo() 方法返回一个负数;如果两个元素相等,则返回 0;如果元素 a 大于元素 b,则返回一个正数。

如果要按降序排序,可以将比较方法稍作修改:

numbers.sort((a, b) => b.compareTo(a));

这里将 ab 的顺序交换了一下。

完整代码

下面是按升序排序和按降序排序的完整代码:

void main() {
  List<int> numbers = [5, 2, 8, 1, 9, 0, 3];

  // 按升序排序
  numbers.sort((a, b) => a.compareTo(b));
  print(numbers); // 输出 [0, 1, 2, 3, 5, 8, 9]

  // 按降序排序
  numbers.sort((a, b) => b.compareTo(a));
  print(numbers); // 输出 [9, 8, 5, 3, 2, 1, 0]
}
结论

通过 Dart 的 sort() 方法,我们可以轻松地按值排序列表。如果需要按顺序排序,可以使用内置的排序方法或自己实现算法。