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