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:
Te puede interesar:Java: cómo obtener claves y valores de un mapaint[] 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.
Te puede interesar:Cree una API REST de Spring Boot con Java – Guía completaNota: 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.
Te puede interesar:@Controller y @RestController Anotaciones en Spring Boot