如何用Dart或Flutter的例子对数字或字符串列表进行升序和降序排序的方法

466 阅读2分钟

本教程展示了以升序和降序对数字或字符串的列表或数组进行排序的多种方法。Sort List of numbers  and strings in Dart or Flutter example 我们可以使用数组或列表的数据结构来排序数字。

如何对数字列表进行自然和反向排序

让我们说,我们有一组数字的列表。

  var numbers = [33, 3, 31, 4, 40];

这个数字列表的排序是以飞镖和扑火的方式进行的

  • 自然顺序(升序)
  • 反向排序(降序)

要对列表中的类型进行排序,请使用排序()方法,如下所述

这里有一个语法

sort(Optional CompareFunction)

CompareFunction是一个可选的比较器函数,如果没有这个函数,它的结果是以自然顺序排序的,等于list.sort()方法

对于`升序或自然顺序,你可以覆盖排序方法,如下所示。两者的结果都是一样的

  List.sort((num1, num2) => num1.compareTo(num2));
  List.sort()

num1.compareTo(num2)函数总是返回以下结果

  • 如果num1< num2,返回< 0
  • 如果num1= num2,返回值=0
  • 如果num1>num2,返回值>0
  List.sort((num1, num2) => num2.compareTo(num1)); or
  List.reversed

下面是自然顺序的步骤顺序

  • 创建一个带有内联初始化语法的int类型的List
  • sort 再次按自然顺序对原始列表中的数字进行排序
  • 最后,打印数字列表

还有,程序:

void main() {
  final List<int> numbers = <int>[33, 3, 31, 4, 40];
  print(numbers); //[33, 3, 31, 4, 40]

  numbers.sort();
  print(numbers); // [3, 4, 31, 33, 40]

}

下面是反向顺序的步骤顺序

  • 用内联初始化语法创建一个List 的数字值。
  • sort 用函数提供,并将数字按相反的顺序进行排序
  • 最后,打印数字列表

程序代码:

void main() {
  final List<int> numbers = <int>[33, 3, 31, 4, 40];
  print(numbers); //[33, 3, 31, 4, 40]

  numbers.sort((num1, num2) => num2.compareTo(num1));
  print(numbers); // [40, 33, 31, 4, 3]
}

如何对字符串列表进行自然和反向排序。

List 字符串的排序可以按升序或降序进行。

List.sort() 方法排序方法自然顺序即升序

这里有一个字符串列表,使用默认的sort()方法按字母的自然顺序对字符串进行排序:

void main() {
  final List<String> words = <String>['one', 'two', 'three', 'four'];
  print(words); //[one, two, three, four]
  words.sort();
  print(words); // [four, one, three, two]
}

对字符串列表进行反向排序,即反向排序

void main() {
  final List<String> words = <String>['one', 'two', 'three', 'four'];
  print(words); //[one, two, three, four]
  words.sort((str1, str2) => str2.compareTo(str1));
  print(words); // [two, three, one, four]

}