如何在Dart列表中找到最小和最大值?Flutter List| Dart By Example

1,042 阅读1分钟

List 包含多个值,有时你需要从给定的列表中获得最小和最大的值。Get Min and Max value from list in dart or flutter

让我们看看一些以不同方式找到最小和最大值的程序。

如何在Dart程序中找到一个数字列表的最大值和最小值?

  • 使用Dart对列表进行排序并获得第一个和最后一个元素 在这个例子中,首先使用sort()方法对数字列表进行排序。这样就把列表中的数字按升序排序。

第一个元素是最小值,最后一个元素是最大值。下面是一个使用sort查找最小值和最大值的dart代码示例。

main() {
  List numbers = [8, 1, 0, 2, 102, 5];
  numbers.sort();
  print(numbers); // [0, 1, 2, 5, 8, 102]
  print(numbers[0]); //0
  print(numbers[numbers.length - 1]); //102
}

列表中的reduce方法用于将项目的集合减少到一个单一的值,使用函数中的登录。

这里是一个语法:

reduce(combinedFunction)

组合函数持有当前值和下一个值,并将这些值与最小或最大逻辑进行比较,分配给当前值。

下面是一个例子程序

main() {
  List numbers = [8, 1, 0, 2, 102, 5];

  var maximumNumber =
      numbers.reduce((value, element) => value > element ? value : element);
  var minimumNumber =
      numbers.reduce((value, element) => value < element ? value : element);

  print(maximumNumber); // 102
  print(minimumNumber); // 0
}

如何从一个对象的列表中获得最大和最小值

在这里,我们有一个雇员列表,每个雇员都有姓名和工资信息。

这个程序在dart和flutter编程中找到所有雇员的最低和最高工资。

class Employee {
  final String name;
  final int salary;

  Employee(this.name, this.salary);
  @override
  String toString() {
    return 'Employee: {name: ${name}, salary: ${salary}}';
  }
}

final e1 = Employee('Erwin', 9000);
final e2 = Employee('Andrew', 70000);
final e3 = Employee('Mark', 8000);
final e4 = Employee('Otroc', 5000);

main() {
  List employees = [e1, e2, e3, e4];

// Find Employee having minimum salary from all employees

  Employee employeeWithMinSalary = employees
      .reduce((item1, item2) => item1.salary < item2.salary ? item1 : item2);

  print(employeeWithMinSalary.toString()); // 102
  
  // Find Employee having Maximum salary from all employees

  Employee employeeWithMaxSalary = employees
      .reduce((item1, item2) => item1.salary > item2.salary ? item1 : item2);

  print(employeeWithMaxSalary.toString()); // 102
}

输出:

Employee: {name: Otroc, salary: 5000}
Employee: {name: Andrew, salary: 70000}

结论

综上所述,学会了用dart和flutter编程找到一个列表的最小和最大值。

  • 原始数字的列表
  • 基于一个数字属性的对象的列表