[java] How to initialize all the elements of an array to any specific value in java

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?

This question is related to java arrays

The answer is



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?