En C/C++
tenemos memset()
la función que puede cumplir con mi deseo, sino en Java
cómo puedo inicializar todos los elementos a un valor específico? Siempre que escribimos int[] array=new int[10];
, esto simplemente inicializa una matriz de tamaño 10 con todos los elementos iguales a cero. Solo quiero cambiar este número entero de inicialización para uno de mis arreglos. es decir, quiero inicializar una matriz que tenga todos los elementos iguales a -1
. De lo contrario, tengo que poner un for
bucle justo después de la inicialización, que va de índice 0
a índice size-1
y dentro de ese bucle, le estoy asignando un elemento -1
. A continuación se muestra el código para una mayor comprensión.
int[] array = new int[10];
for (int i = 0; i < size; i++) {
array[i] = -1;
}
¿Voy correcto? ¿Hay alguna otra forma de hacer lo mismo?
Arrays.fill()
. Hace la misma cosa.public static void fill(int[] a, int val) {
for (int i = 0, len = a.length; i < len; i++)
a[i] = val;
}
memset
también se puede utilizar, y de hecho es muy útil, en matrices de enteros cuando necesita rellenar con0
o-1
, por ejemplo, en problemas de DP.También hay
fuente
También es posible con los flujos de Java 8:
Sin embargo, probablemente no sea la forma más eficiente de hacer el trabajo.
fuente
Stream.generate(() -> new Whatever("Hello World", 42)).limit(count).toArray();
), por lo que es más flexible que Arrays.fill (). Sin embargo, no estoy seguro de la eficiencia, como dices.Podrías hacer esto si es corto:
int[] array = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
pero eso se vuelve malo para algunos.
Más fácil sería un
for
bucle:Editar: También me gusta la
Arrays.fill()
opción que otras personas han mencionado.fuente
java.util.Arrays.fill ()
fuente
¿Has probado la función Arrays.fill ?
fuente
Puede utilizar
Arrays.fill(array, -1)
.fuente
Evidentemente, puede usar Arrays.fill (), aunque la forma en que lo ha hecho también funciona.
fuente
Arrays.fill()
usa unfor
bucle con index0
tosize-1
. De la misma manera, lo que hice. Gracias por su respuesta.Uso de Java 8, puede simplemente usar
ncopies
deCollections
clase:En tu caso será:
Aquí hay una respuesta detallada de un caso similar suyo.
fuente
Para las listas que puede utilizar
Collections.fill(arrayList, "-")
fuente