# How to find min and max value in Dart List? Flutter List| Dart By Example

A List contains multiple values; sometimes, you need to obtain the minimum and maximum values from the given list.

## #How to find the maximum and minimum values of a List of Numbers in a Dart program?

Let’s explore some programs to find the minimum and maximum values in different ways.

• use `Sort` the list and get the first and last Element in Dart

In this example, first, sort the list of numbers using the `sort()` method. This arranges the numbers in ascending order. The first element becomes the minimum value, and the last element is the maximum value.

Here’s an example Dart code to find the minimum and maximum values using sorting.

``````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
}
``````
• Using the Reduce Method

The `reduce` method in a list is used to reduce the collection of items into a single value using a logic defined inside a function.

Here is a Syntax.

``````reduce(combinedFunction)
``````

The `combinedFunction` holds the current value and the next value, compares the values, and assigns the current value with minimum or maximum logic.

Here’s an example program.

``````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
}
``````

## #How to get the max and min values from a list of objects?

In this scenario, we have a list of employees, where each employee holds name and salary information. This program finds the minimum and maximum salary of all employees listed in Dart and Flutter programming.

``````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<Employee> 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
}
``````

Output:

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

## #Conclusion

In summary, we learned how to find the minimum and maximum values of a list in Dart and Flutter programming, covering

• Lists of primitive numbers.
• Lists of objects based on a numeric property.