У 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;
}
Я иду правильно? Есть ли другой способ сделать то же самое?
Arrays.fill()
. То же самое.public static void fill(int[] a, int val) {
for (int i = 0, len = a.length; i < len; i++)
a[i] = val;
}
memset
также может использоваться, и на самом деле очень полезно, в целочисленных массивах, когда вам нужно заполнить0
или-1
, например, в задачах DP.Есть также
источник
Это также возможно с потоками Java 8:
Однако, вероятно, это не самый эффективный способ выполнить работу.
источник
Stream.generate(() -> new Whatever("Hello World", 42)).limit(count).toArray();
), поэтому более гибко, чем Arrays.fill (). Хотя, как вы говорите, не уверен в эффективности.Вы можете сделать это, если коротко:
int[] array = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
но это плохо для многих.
Проще будет
for
петля:Изменить: мне также нравится
Arrays.fill()
вариант, упомянутый другими людьми.источник
java.util.Arrays.fill ()
источник
Вы пробовали функцию Arrays.fill ?
источник
Вы можете использовать
Arrays.fill(array, -1)
.источник
Очевидно, вы можете использовать Arrays.fill (), но то, как вы это сделали, также работает.
источник
Arrays.fill()
используетfor
цикл с индексом0
доsize-1
. Так же, как и я. Спасибо за ваш ответ.Использование Java 8, вы можете просто использовать
ncopies
вCollections
классе:В вашем случае это будет:
Вот подробный ответ вашего подобного случая.
источник
Для списков вы можете использовать
Collections.fill(arrayList, "-")
источник