How to initialize all members of an array to the same value?
Initializing all elements of an array to the same value is a common operation across many programming languages. The exact approach depends on which language you’re using and whether you’re initializing the array at declaration time or assigning values afterward. Below are popular methods in some common languages.
1. Java
Using Arrays.fill()
int[] arr = new int[5]; // default values are all 0 for int Arrays.fill(arr, 7); // Now arr = [7, 7, 7, 7, 7]
- Note: This approach also works for other data types like
double
,char
,String
, and even objects (Object[]
).
Using a Loop
int[] arr = new int[5]; for (int i = 0; i < arr.length; i++) { arr[i] = 7; }
- Generally used if you need a bit more logic during assignment.
2. JavaScript
Using fill()
ES6 introduced the fill()
method for arrays:
const arr = new Array(5).fill(7); console.log(arr); // [7, 7, 7, 7, 7]
- Immutable Approach: If you already have an array, you can do:
const arr = [0, 1, 2, 3, 4]; arr.fill(7); console.log(arr); // [7, 7, 7, 7, 7]
Using a Loop
const arr = []; for (let i = 0; i < 5; i++) { arr[i] = 7; }
- Straightforward, especially if you need more complex logic while filling.
3. Python
List Multiplication
Python allows you to create a new list filled with the same value using the multiplication operator:
arr = [7] * 5 print(arr) # [7, 7, 7, 7, 7]
- Caution: If the value is a mutable object (e.g., a list), each element will be a reference to the same object. For immutable types (e.g.,
int
,str
), this is not a problem.
List Comprehension
arr = [7 for _ in range(5)] print(arr) # [7, 7, 7, 7, 7]
- Useful if you want more control or logic (e.g., each element depends on
i
).
4. C
Static Initialization (At Declaration)
If you want to set all elements to zero:
int arr[5] = {0}; // Now arr = [0, 0, 0, 0, 0]
- This only automatically fills with
0
. For other values, you need to do something extra.
Using a Loop
int arr[5]; for(int i = 0; i < 5; i++) { arr[i] = 7; }
- If you need a non-zero value, a loop is the simplest approach.
5. C++
Using a Loop
#include <iostream> using namespace std; int main() { int arr[5]; for(int i = 0; i < 5; i++) { arr[i] = 7; } return 0; }
Using std::fill
If you have a C++11 compiler or later:
#include <algorithm> // for std::fill int main() { int arr[5]; std::fill(arr, arr + 5, 7); return 0; }
- For
std::vector
:std::fill(vec.begin(), vec.end(), 7);
Edge Cases and Tips
-
Multidimensional Arrays: If you have 2D or 3D arrays, you’ll typically need nested loops or repeated fill logic, unless your language/library provides a method for multi-dimensional initialization.
-
Mutable vs. Immutable: Be aware of how your language handles references vs. primitive types. For example, in Python
[some_list] * 3
creates three references to the same list. -
Partial Initialization: Many languages (like C) allow partial initialization, automatically setting the rest to 0 (for numeric types). But if you need a non-zero value everywhere, you must explicitly assign it.
-
Performance: Generally, any built-in or library method (like
Arrays.fill()
in Java orstd::fill
in C++) is as efficient or more efficient than a manual loop. In lower-level languages like C, using a loop is about as good as it gets, unless you write custom memory operations (memset
for zero-filling in C).
Level Up Your Coding Skills
If you want to strengthen your grasp of fundamental programming concepts and data manipulation, or you’re preparing for coding interviews, here are a couple of resources from DesignGurus.io:
- Grokking Data Structures & Algorithms for Coding Interviews – Build a strong foundation in arrays, lists, trees, graphs, and beyond to tackle a variety of interview questions with ease.
- Grokking the Coding Interview: Patterns for Coding Questions – Learn the recurring patterns behind common coding problems so you can solve them faster and more systematically.
- Grokking JavaScript Fundamentals - Learn JavaScript fundamentals.
- Grokking Python Fundamentals - Understand python basic and advanced concepts and learn coding with examples.
For personalized interview feedback and mock practice, consider booking a Coding Mock Interview with experienced ex-FAANG engineers. Additionally, check out the DesignGurus YouTube Channel for free tutorials, system design demos, and interview tips.
Conclusion
Initializing an entire array to the same value varies by language: Java and C++ provide library methods (Arrays.fill()
, std::fill
), while JavaScript’s .fill()
, Python’s * operator
or list comprehensions, and loops in C make it convenient. Just be mindful of whether you need zero-initialization (often automatic in some languages), non-zero or non-primitive types, and whether you need to handle multiple dimensions or references carefully.