Introduction :
Lists are iterable in Dart. Lists are categorized into two kinds: growable and fixed-length lists. We can change the size of a growable list and the size is fixed for fixed-length lists. Sometimes, we need to find the total sum of all elements of an integer list. We can easily do that by iterating through each element of the list.
But Dart provides a couple of methods to find out the sum of all the list elements without using a loop. In this post, I will show you 4 different ways to find out the sum of all elements of a list.
Method 1: By using a loop :
This is the most commonly used method. Iterate through the list using a loop and add all elements of the list to a final sum variable. We are using one for
loop in this example:
main() {
var sum = 0;
var given_list = [1, 2, 3, 4, 5];
for (var i = 0; i < given_list.length; i++) {
sum += given_list[i];
}
print("Sum: ${sum}");
}
Download it from Github
- In this example, the
for
loop starts fromi = 0
and on each iteration, it increases the value ofi
by 1. - It will stop once the value of
i
is equal to the last element’s index i.e. length of the list - 1. - On each step of the loop, it adds the value at index
i
to thesum
variable. Thesum
variable is initialized as 0 at the start of the program. - At the end of the program, it prints the
sum
variable, which is the sum of the elements of the listgiven_list
.
You can also use any other loop. For example, the following program uses a while
loop:
main() {
var sum = 0;
var given_list = [1, 2, 3, 4, 5];
var i = 0;
while (i < given_list.length) {
sum += given_list[i];
i++;
}
print("Sum: ${sum}");
}
Download it from Github
Both of these programs will print the same output:
Sum: 15
Method 2: By using the forEach method:
The forEach
method provides another way to iterate through a list. We can also use this method to find out the total sum of all values in a dart list. It is similar to the above examples. The only difference is that we don’t have to initialize another variable i
and we don’t need to find the length of the list.
main() {
var sum = 0;
var given_list = [1, 2, 3, 4, 5];
given_list.forEach((e) => sum += e);
print("Sum: ${sum}");
}
Download it from Github
Much simpler than using a for
or while
loop. It will print the same output.
Method 3: By using the reduce method:
The reduce
method combines the elements of a list iteratively to one single value using a given function. We can use this method to find out the sum of all elements as like below:
main() {
var given_list = [1, 2, 3, 4, 5];
var sum = given_list.reduce((value, element) => value + element);
print("Sum: ${sum}");
}
Note that it will fail if the list is empty. We need to handle it for empty lists:
main() {
var given_list = [1, 2, 3, 4, 5];
var sum = given_list.length > 0
? given_list.reduce((value, element) => value + element)
: 0;
print("Sum: ${sum}");
}
Download it from Github
Method 4: By using the fold method :
The fold()
method is similar to reduce
. It combines all elements of a list iteratively to one single value using a function. It takes one initial value and calculates the final value based on the previous value.
main() {
var sum = 0;
var given_list = [1, 2, 3, 4, 5];
sum = given_list.fold(0, (previous, current) => previous + current);
print("Sum: ${sum}");
}
Download it from Github
The fold
method also works for an empty list.
Combining all methods:
The following example shows how it works with different methods:
main() {
// method 1
var sum = 0;
var given_list = [1, 2, 3, 4, 5];
for (var i = 0; i < given_list.length; i++) {
sum += given_list[i];
}
print("Sum (for loop): ${sum}");
// method 2
var i = 0;
sum = 0;
while (i < given_list.length) {
sum += given_list[i];
i++;
}
print("Sum (while loop): ${sum}");
// method 3
sum = 0;
given_list.forEach((e) => sum += e);
print("Sum (forEach): ${sum}");
// method 4
sum = given_list.length > 0
? given_list.reduce((value, element) => value + element)
: 0;
print("Sum (reduce): ${sum}");
// method 5
sum = given_list.fold(0, (previous, current) => previous + current);
print("Sum (fold): ${sum}");
}
Download it from Github
You might also like:
- Dart program to round a number to its nearest value
- Dart program to find the hash value of a string
- How to multiply strings in Dart
- What is string interpolation in dart
- try-catch in dart explanation with example
- Dart map() function explanation with example
- Dart remove items from a list that doesn’t satisfy a condition
- Get the only single element that satisfy a condition in dart list
- Dart program to get the first n elements from a list