# How to Sort List of numbers or String in ascending and descending in Dart or Flutter example

This tutorial shows multiple ways to sort a list or array of numbers or strings in ascending and descending order. We can use either Array or List data structure used to sort numbers.

## How to sort a List of Numbers in natural and reverse order

Let us say We have a set of numbers in a list.

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

This sort of List of numbers in dart and flutter

• Natural Order(Ascending order)
• Reverse Order(Descending order)

To sort the list of types, use the sort() method as described below

Here is a syntax

sort(Optional CompareFunction)

CompareFunction is an optional Comparator function, without this, It results in sorted results in a natural order which is equal to the list.sort() method

For `ascending or natural order, you can override the sort methods as follows. Both results are the same

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

num1.compareTo(num2) function always returns the following

• if num1< num2, returns < 0
• if num1= num2, returns = 0
• if num1> num2, returns > 0

For descending order, you can override the sort method or use the reversed property as follows.

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

Here is the sequence of steps for the natural order

• Create a List of int types with inline initialization syntax
• sort again sorted the numbers in the natural order for the original list
• Finally, print the list of numbers

And, Program:

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]

}

Here is the sequence of steps for reverse order

• Create a List of numeric values with inline initialization syntax
• sort supplied with function and sorted the numbers in the reverse order
• Finally, print the list of numbers

Program code:

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

## How to sort List of Strings in natural and reverse order

List of strings can be sorted in ascending order or descending.

List.sort() method sorts method natural order i.e ascending order

Here is a list of strings and used default sort() method sorts the strings in natural order by alphabet.

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

Sort list of strings in reverse order i.e reverse order

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]

}