Cómo declarar e inicializar una matriz en Java

     

    Introducción

    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.

    Te puede interesar:Ordenar por selección en Java

    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 mapa
    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.

    Te puede interesar:Cree una API REST de Spring Boot con Java – Guía completa

    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:

    Te puede interesar:Obtenga HTTP POST Body en Spring Boot con @RequestBody
    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.

    Te puede interesar:Uso de variables / constantes globales en Java

    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
    Rate this post

    Etiquetas: