在 Dart 中,我们可以通过七种方式找到给定列表中存在的最小值和最大值元素:

  1. 使用for 循环查找最大和最小元素。
  2. 使用sort 函数查找最大和最小元素。
  3. 使用forEach 循环查找最大和最小元素。
  4. 在 dart 中仅使用reduce 方法来查找最大和最小元素。
  5. dart:math库中使用reduce 方法
  6. 使用带有 dart 的fold 方法来查找最大和最小元素。
  7. dart:math库中使用fold 方法

使用for 循环

这是查找列表中最大和最小元素的最基本方法,只需遍历所有元素并进行比较并给出答案。

例子:

// Main function
void main() {
	
// Creating a geek list
var geekList = [121, 12, 33, 14, 3];
	
// Declaring and assigning the
// largestGeekValue and smallestGeekValue
var largestGeekValue = geekList[0];
var smallestGeekValue = geekList[0];

for (var i = 0; i < geekList.length; i++) {
	
	// Checking for largest value in the list
	if (geekList[i] > largestGeekValue) {
	largestGeekValue = geekList[i];
	}
	
	// Checking for smallest value in the list
	if (geekList[i] < smallestGeekValue) {
	smallestGeekValue = geekList[i];
	}
}

// Printing the values
print("Smallest value in the list : $smallestGeekValue");
print("Largest value in the list : $largestGeekValue");
}

使用排序功能

Dart 还允许用户按升序对列表进行排序,即第一个最小,最后一个最大。

例子:*

// Main function
void main() {
// Creating a geek list
var geekList = [121, 12, 33, 14, 3];
	
// Sorting the list
geekList.sort();

// Printing the values
print("Smallest value in the list : ${geekList.first}");
print("Largest value in the list : ${geekList.last}");
}

使用forEach 循环

与 for 循环不同,还可以使用 forEach 循环来获取列表元素,然后检查列表元素中的条件。

// Main function
void main() {
	
// Creating a geek list
var geekList = [121, 12, 33, 14, 3];
	
// Declaring and assigning the
// largestGeekValue and smallestGeekValue
var largestGeekValue = geekList[0];
var smallestGeekValue = geekList[0];
	
// Using forEach loop to find
// the largest and smallest
// numbers in the list
geekList.forEach((gfg) => {
		if (gfg > largestGeekValue) {largestGeekValue = gfg},
		if (gfg < smallestGeekValue) {smallestGeekValue = gfg},
	});

// Printing the values
print("Smallest value in the list : $smallestGeekValue");
print("Largest value in the list : $largestGeekValue");
}

使用reduce方法

可以使用 Dart reduce函数将列表减少到特定值并保存。

// Main function
void main() {
	
// Creating a geek list
var geekList = [121, 12, 33, 14, 3];
	
// Declaring and assigning the
// largestGeekValue and smallestGeekValue
// Finding the smallest and largest
// value in the list
var smallestGeekValue = geekList.reduce(
(current, next) => current < next ? current : next);
var largestGeekValue = geekList.reduce(
(current, next) => current > next ? current : next);

// Printing the values
print("Smallest value in the list : $smallestGeekValue");
print("Largest value in the list : $largestGeekValue");
}

dart:math库中使用reduce方法

import "dart:math";

// Main function
void main() {
// Creating a geek list
var geekList = [121, 12, 33, 14, 3];
	
// Declaring and assigning the
// largestGeekValue and smallestGeekValue
// Finding the smallest and largest value in the list
var smallestGeekValue = geekList.reduce(min);
var largestGeekValue = geekList.reduce(max);

// Printing the values
print("Smallest value in the list : $smallestGeekValue");
print("Largest value in the list : $largestGeekValue");
}

使用fold 方法

除了减少飞镖还有折叠,它与减少非常相似,只是从一个初始值开始,然后在这个过程中改变它。

例子:

// Main function
void main() {
	
// Creating a geek list
var geekList = [121, 12, 33, 14, 3];
	
// Declaring and assigning the
// largestGeekValue and smallestGeekValue
// Finding the smallest and
// largest value in the list
var smallestGeekValue = geekList.fold(geekList[0],
(previous, current) => previous < current ? previous : current);
var largestGeekValue = geekList.fold(geekList[0],
(previous, current) => previous > current ? previous : current);

// Printing the values
print("Smallest value in the list : $smallestGeekValue");
print("Largest value in the list : $largestGeekValue");
}

dart:math库中使用fold 方法

import "dart:math";

// Main function
void main() {
// Creating a geek list
var geekList = [121, 12, 33, 14, 3];
	
// Declaring and assigning
// the largestGeekValue and smallestGeekValue
// Finding the smallest and
// largest value in the list
var smallestGeekValue = geekList.fold(geekList[0],min);
var largestGeekValue = geekList.fold(geekList[0],max);

// Printing the values
print("Smallest value in the list : $smallestGeekValue");
print("Largest value in the list : $largestGeekValue");
}

1