2009-02-23 23 views
65

sé cómo hacerlo normalmente, pero podría jurar que se puede llenar a cabo como un [0] = {0,0,0,0}; ¿Cómo lo haces de esa manera? Probé con Google, pero no conseguí nada útil.¿Cómo llené matrices en Java?

+1

La verdadera pregunta que se debería hacer es cómo hacer este trabajo: a [0] = someFunction (4, 0) ;. Por esa razón, la respuesta "correcta" seleccionada no es útil. – HoldOffHunger

Respuesta

54

También puede hacerlo como parte de la declaración:

int[] a = new int[] {0, 0, 0, 0}; 
+0

Esto es en lo que estaba pensando, ¡gracias! – William

+10

int [] a = new int [4] lograría lo mismo, ya que 0 es el valor predeterminado. –

+3

O int [] a = {0, 0, 0, 0}; . Solo necesita la nueva int [] si la constante no se usa inmediatamente en una declaración. – starblue

15

Arrays.fill(). El método está sobrecargado para diferentes tipos de datos, e incluso hay una variación que llena solo un rango específico de índices.

229

Salida los métodos Arrays.fill.

int[] array = new int[4]; 
Arrays.fill(array, 0); 
+20

+1 porque no sabía sobre el método Arrays.fill(). Siempre lo hice con un bucle for. : D – Spoike

+7

@GrantGalitz Realmente no estoy convencido de eso, ¿tienes un enlace a un artículo o smt? Porque a diferencia de las clases 'System',' java.util.Arrays' es una clase implementada por Java, y mirando a través de la fuente muestra que ** no es diferente ** de un bucle normal. – Pacerier

+7

Las matrices de ints se inicializan con 0, por lo que la segunda línea no es necesaria en el ejemplo anterior. –

5

Una matriz se puede inicializar mediante el uso de la sintaxis new Object {}.

Por ejemplo, una serie de String puede ser declarado por cualquiera:

String[] s = new String[] {"One", "Two", "Three"}; 
String[] s2 = {"One", "Two", "Three"}; 

primitivas también se pueden inicializar de manera similar ya sea por:

int[] i = new int[] {1, 2, 3}; 
int[] i2 = {1, 2, 3}; 

o una matriz de alguna Object:

Point[] p = new Point[] {new Point(1, 1), new Point(2, 2)}; 

Todos los detalles acerca de las matrices en Java son escritos en Chapter 10: Arrays en The Java Language Specifications, Third Edition.

2

elementos de matriz en Java son inicializados a los valores por defecto cuando se crea. Para los números, esto significa que están inicializados a 0, para las referencias son nulos y para los booleanos son falsos.

para llenar la matriz con algo más que puede utilizar Arrays.fill() o como parte de la declaración

int[] a = new int[] {0, 0, 0, 0}; 

No hay atajos en Java para llenar matrices con series aritméticas como en algunos lenguajes de script.

9

En Java-8 se puede utilizar IntStream para producir una serie de números que desea repetir, y luego convertirlo en matriz. Este enfoque produce una expresión adecuada para su uso en un inicializador:

int[] data = IntStream.generate(() -> value).limit(size).toArray(); 

arriba, size y value son expresiones que producen el número de elementos que desea repetir tot y el valor que se repite.

Demo.

5
Arrays.fill(arrayName,value); 

en Java

int arrnum[] ={5,6,9,2,10}; 
for(int i=0;i<arrnum.length;i++){ 
    System.out.println(arrnum[i]+" "); 
} 
Arrays.fill(arrnum,0); 
for(int i=0;i<arrnum.length;i++){ 
    System.out.println(arrnum[i]+" "); 
} 

salida

5 6 9 2 10 
0 0 0 0 0 
-2
int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 
+5

¡Bienvenido al sitio! Esta respuesta mejoraría si pudiera agregar alguna explicación, en lugar de solo descolgar algún código. ¿Por qué sería esto preferible a cualquiera de las otras respuestas ya proporcionadas en esta pregunta de 7 años? – Mogsdad

Cuestiones relacionadas