In C/C++
we have memset()
function which can fulfill my wish but in Java
how can i initialize all the elements to a specific value? Whenever we write int[] array=new int[10];
, this simply initialize an array of size 10 having all elements equal to zero. I just want to change this initialization integer for one of my array. i.e. I want to initialize an array which has all elements equal to -1
. Otherwise I have to put a for
loop just after initialization, which ranges from index 0
to index size-1
and inside that loop, I am assigning element to -1
. Below is the code for more understanding-
int[] array = new int[10];
for (int i = 0; i < size; i++) {
array[i] = -1;
}
Am i going correct? Is there any other way for the same?
For Lists you can use
Collections.fill(arrayList, "-")
You could do this if it's short:
int[] array = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
but that gets bad for more than just a few.
Easier would be a for
loop:
int[] myArray = new int[10];
for (int i = 0; i < array.length; i++)
myArray[i] = -1;
Edit: I also like the Arrays.fill()
option other people have mentioned.
It is also possible with Java 8 streams:
int[] a = IntStream.generate(() -> value).limit(count).toArray();
Probably, not the most efficient way to do the job, however.
Evidently you can use Arrays.fill(), The way you have it done also works though.
Using Java 8, you can simply use ncopies
of Collections
class:
Object[] arrays = Collections.nCopies(size, object).stream().toArray();
In your case it will be:
Integer[] arrays = Collections.nCopies(10, Integer.valueOf(1)).stream().toArray(Integer[]::new);
.
Here is a detailed answer of a similar case of yours.
You can use Arrays.fill(array, -1)
.
There's also
int[] array = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
Have you tried the Arrays.fill function?
Source: Stackoverflow.com