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.

    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.

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *