Skip to content
DeveloperMemos

Initializing a List with a Default Value in Dart

Dart, List Initialization, Programming2 min read

When working with Dart, there are times when you might need to initialize a list with default values. This process can be crucial for various programming tasks. In this article, we'll explore how to initialize a list with a default value in Dart, providing some practical examples along the way.

Creating an Empty List

Before diving into initializing a list with a default value, let's first understand how to create an empty list in Dart. In Dart, lists are created using square brackets. For instance, to create an empty list of integers, you can use the following syntax:

1List<int> numbers = [];

This simple line of code initializes an empty list of integers named "numbers."

Initializing a List with a Default Value

Now, let's move on to the main topic: initializing a list with a default value. Dart provides a convenient way to accomplish this using the List.filled constructor. This constructor allows us to create a new list containing a specified number of elements, all initialized to the same value. Here's the basic syntax:

1List<int> filledList = List.filled(5, 0);

In this example, we create a list named "filledList" with 5 elements, all initialized to the value 0. The first argument specifies the number of elements, while the second argument represents the default value.

Working with Dynamic Values

What if you want to initialize a list with dynamically calculated default values? Dart allows you to achieve this by using the List.generate method. This method creates a new list where each element is computed based on its index. Let's consider the following example:

1List<int> dynamicList = List.generate(3, (index) => index * 2);

In this case, we create a list named "dynamicList" with 3 elements. Each element is calculated as twice the value of its index. This approach offers flexibility in initializing lists with values derived from expressions or calculations.

Handling Immutable Lists

If you intend to work with immutable lists in Dart, you can utilize the UnmodifiableListView class from the dart:collection library. This class wraps a list to make it unmodifiable, preventing any changes to the underlying list. Here's an example of how to use it:

1import 'dart:collection';
2
3List<String> fruits = ['apple', 'banana', 'orange'];
4var unmodifiableFruits = UnmodifiableListView(fruits);

In this snippet, the unmodifiableFruits list cannot be modified directly, ensuring data integrity when immutability is required.


Initializing a list with a default value in Dart is a fundamental concept essential for various programming scenarios. Whether you need a list with a predefined size and default values, or you're looking to generate elements dynamically, Dart provides several efficient methods to achieve these objectives. By leveraging the techniques discussed in this article, you can confidently work with lists in Dart, tailoring them to suit your specific application requirements.