Introducci贸n
Contenido
En este tutorial, veremos c贸mo declarar e inicializar matrices en Java.
Declaramos una matriz en Java como lo hacemos con otras variables, proporcionando un tipo y un nombre:
int[] myArray;
Para inicializar o instanciar una matriz como la declaramos, lo que significa que asignamos valores cuando creamos la matriz, podemos usar la siguiente sintaxis abreviada:
int[] myArray = {13, 14, 15};
O bien, puede generar un flujo de valores y asignarlo de nuevo a la matriz:
int[] intArray = IntStream.range(1, 11).toArray();
int[] intArray = IntStream.rangeClosed(1, 10).toArray();
int[] intArray = IntStream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).toArray();
Para comprender c贸mo funciona esto, lea m谩s para conocer los entresijos de la declaraci贸n de matriz y la instanciaci贸n.
- Declaraci贸n de matriz en Java
- Inicializaci贸n de matriz en Java
- IntStream.range ()
- IntStream.rangeClosed ()
- IntStream.of ()
- Inicializaci贸n de bucle de matriz de Java
Declaraci贸n de matriz en Java
La declaraci贸n de un objeto de matriz en Java sigue la misma l贸gica que la declaraci贸n de una variable de Java. Identificamos el tipo de datos de los elementos de la matriz y el nombre de la variable, mientras agregamos corchetes rectangulares []
para denotar que es una matriz.
Aqu铆 hay dos formas v谩lidas de declarar una matriz:
int intArray[];
int[] intArray;
La segunda opci贸n se prefiere a menudo, ya que denota m谩s claramente de qu茅 tipo intArray
es.
Tenga en cuenta que solo hemos creado una referencia de matriz. No se ha asignado memoria a la matriz ya que se desconoce el tama帽o y no podemos hacer mucho con ella.
Inicializaci贸n de matriz en Java
Para usar la matriz, podemos inicializarla con el new
palabra clave, seguida del tipo de datos de nuestra matriz y corchetes rectangulares que contienen su tama帽o:
int[] intArray = new int[10];
Esto asigna la memoria para una matriz de tama帽o 10
. Este tama帽o es inmutable.
Java rellena nuestra matriz con valores predeterminados seg煤n el tipo de elemento: 0
para enteros, false
para booleanos, null
para objetos, etc. Veamos m谩s sobre c贸mo podemos instanciar una matriz con los valores que queremos.
La forma lenta de inicializar su matriz con valores no predeterminados es asignar valores uno por uno:
int[] intArray = new int[10];
intArray[0] = 22;
En este caso, declar贸 un objeto de matriz de enteros que contiene 10 elementos, por lo que puede inicializar cada elemento utilizando su valor de 铆ndice.
La estrategia m谩s com煤n y conveniente es declarar e inicializar la matriz simult谩neamente con llaves {}
que contiene los elementos de nuestra matriz.
El siguiente c贸digo inicializa una matriz de enteros con tres elementos: 13, 14 y 15:
int intArray[] = {13, 14, 15};
Tenga en cuenta que el tama帽o de su objeto de matriz ser谩 el n煤mero de elementos que especifique dentro de las llaves. Por lo tanto, ese objeto de matriz es de tama帽o tres.
Este m茅todo tambi茅n funciona con objetos. Si quisi茅ramos inicializar una matriz de tres cadenas, lo har铆amos as铆:
int[] stringArray = {"zelda", "link", "ganon"};
Java nos permite inicializar la matriz usando el new
palabra clave tambi茅n:
int[] intArray = new int[]{13, 14, 15};
int[] stringArray = new String[]{"zelda", "link", "ganon"};
Funciona de la misma forma.
Nota: Si est谩 creando un m茅todo que devuelve una matriz inicializada, tendr谩 que usar el new
palabra clave con las llaves. Al devolver una matriz en un m茅todo, las llaves por s铆 solas no funcionar谩n:
public String[] getNames() {
return new String[]{"zelda", "link", "ganon"}; // Works
}
public String[] getNames() {
return {"zelda", "link", "ganon"}; // Doesn't work
}
IntStream.range ()
Si declara e inicializa una matriz de n煤meros enteros, puede optar por utilizar la IntStream
Interfaz Java:
int[] intArray = IntStream.range(1, 11).toArray();
El c贸digo anterior crea una matriz de diez enteros, que contienen los n煤meros del 1 al 10:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
los IntStream
la interfaz tiene un range()
m茅todo que toma el comienzo y el final de nuestra secuencia como par谩metros. Tenga en cuenta que el segundo par谩metro no est谩 incluido, mientras que el primero s铆 lo est谩.
Luego usamos el m茅todo toArray()
m茅todo para convertirlo en una matriz.
Nota: IntStream
es solo una de las pocas clases que se pueden usar para crear rangos. Tambi茅n puede utilizar un DoubleStream
o LongStream
en cualquiera de estos ejemplos.
IntStream.rangeClosed ()
Si desea anular esa caracter铆stica e incluir tambi茅n el 煤ltimo elemento, puede usar IntStream.rangeClosed()
en lugar:
int[] intArray = IntStream.rangeClosed(1, 10).toArray();
Esto produce una matriz de diez enteros, del 1 al 10:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
IntStream.of ()
los IntStream.of()
El m茅todo funciona de manera muy similar a declarar una matriz con un n煤mero determinado de valores, como:
int[] intArray = new int[]{6, 2, 4, 5, 7};
Aqu铆, especificamos los elementos en el of()
llamada:
int[] intArray = IntStream.of(6, 2, 4, 5, 7).toArray();
Esto produce una matriz con el orden de los elementos conservados:
[6, 2, 4, 5, 7]
O incluso podr铆as llamar al sorted()
en esto, para ordenar la matriz a medida que se inicializa:
int[] intArray = IntStream.of(6, 2, 4, 5, 7).sorted().toArray();
Lo que da como resultado una matriz con este orden de elementos:
[2, 4, 5, 6, 7]
Inicializaci贸n de bucle de matriz de Java
Una de las t茅cnicas m谩s poderosas que puede utilizar para inicializar su matriz implica el uso de un for
loop para inicializarlo con algunos valores.
Usemos un ciclo para inicializar una matriz de enteros con valores de 0 a 9:
int[] intAray = new int[10];
for (int i = 0; i < intArray.length; i++) {
int_array[i] = i;
}
Esto es id茅ntico a cualquiera de las siguientes opciones m谩s breves:
int[] intArray = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] intArray = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] intArray = IntStream.rangeClosed(0, 9).toArray();
Un ciclo es m谩s ideal que los otros m茅todos cuando tiene una l贸gica m谩s compleja para determinar el valor del elemento de la matriz.
Por ejemplo, con un for
bucle podemos hacer cosas como hacer elementos en 铆ndices pares dos veces m谩s grandes:
int[] intArray = new int[10];
for (int i = 0; i < intArray.length; i++) {
if (i % 2 == 0) {
int_array[i] = i * 2;
} else {
int_array[i] = i;
}
}
Conclusi贸n
En este art铆culo, descubrimos las diferentes formas y m茅todos que puede seguir para declarar e inicializar una matriz en Java. Hemos usado llaves {}
, la new
palabra clave y for
bucles para inicializar matrices en Java, de modo que tenga muchas opciones para diferentes situaciones.
Tambi茅n hemos cubierto algunas formas de utilizar IntStream
class para poblar matrices con rangos de elementos.