Подтвердить что ты не робот

Как инициализировать все элементы массива для любого конкретного значения в java

В C/C++ имеется функция memset(), которая может выполнить мое желание, но в Java, как я могу инициализировать все элементы до определенного значения? Всякий раз, когда мы пишем int[] array=new int[10];, это просто инициализирует массив размером 10, имеющий все элементы, равные нулю. Я просто хочу изменить это число инициализации для одного из моих массивов. т.е. я хочу инициализировать массив, который имеет все элементы, равные -1. В противном случае я должен положить цикл for сразу после инициализации, который варьируется от индекса 0 до индекса size-1 и внутри этого цикла, я назначаю элемент -1. Ниже приведен код для более глубокого понимания -

    int[] array = new int[10];
    for (int i = 0; i < size; i++) {
        array[i] = -1;
    }

Я иду правильно? Есть ли другой способ для этого?

4b9b3361

Ответ 1

Если это примитивный тип, вы можете использовать Arrays.fill():

Arrays.fill(array, -1);

[Кстати, memset в C или С++ используется только для реального использования для массивов char.]

Ответ 2

Там также

int[] array = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1};

Ответ 5

Вы можете сделать это, если оно короткое:

int[] array = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};

но это плохо для более чем нескольких.

Легче будет цикл for:

  int[] myArray = new int[10];
  for (int i = 0; i < array.length; i++)
       myArray[i] = -1;

Изменить: мне также нравится опция Arrays.fill(), о которой говорили другие люди.

Ответ 6

Очевидно, вы можете использовать Arrays.fill(), способ, которым вы это сделали, также работает.

Ответ 7

Вы можете использовать Arrays.fill(array, -1).

Ответ 8

Также возможно с потоками Java 8:

int[] a = IntStream.generate(() -> value).limit(count).toArray();

Возможно, не самый эффективный способ выполнить эту работу.