¿Qué son las matrices en Java?

Las matrices son objetos que almacenan múltiples variables del mismo tipo. Puede aguantar tipos primitivos así como referencias a objetos. De hecho, la mayoría de los tipos de colecciones de Java que forman parte de java.util El paquete utiliza matrices internamente en su funcionamiento. Dado que las matrices son objetos, se crean en tiempo de ejecución. La longitud de la matriz es fija.

Características de la matriz

  1. Las matrices son objetos
  2. También pueden contener variables de referencia de otros objetos.
  3. Se crean durante el tiempo de ejecución.
  4. Son dinámicos, creados en el montón
  5. La longitud de la matriz es fija.

Declaración de matriz

Primero entremos declaración de matriz que contiene tipos primitivos. La declaración de la matriz indica el tipo de elemento que contiene la matriz seguida del identificador y corchetes que indican que el identificador es el tipo de matriz.

Ejemplo 1: Declaración de una matriz que contiene elementos de tipo entero.

int aiMyArray[];

La declaración anterior crea una referencia a la matriz en la pila.

Forma diferente de declarar una matriz:

¡Las dos declaraciones siguientes son válidas e iguales!

int []aiMyArray;
int aiMyArray[];

Error de compilación –

La siguiente declaración causaría un error de compilación ya que el compilador (JVM) no asigna el objeto hasta que realmente se crea una instancia en el objeto de matriz.

int aiFirstArray[] = new int[6];

La declaración anterior crea una matriz de tamaño 6 en el montón. Para la creación de un objeto Array, la JVM debe conocer el tamaño del espacio para asignar al objeto, por lo que el tamaño debe especificarse después nuevo palabra clave.

leer  Java Autoboxing y Unboxing con ejemplos

Si observa, todos los elementos de la matriz se inicializarán a 0 a medida que se crea en el montón. Si desea otros valores en lugar de los valores predeterminados, debe hacerlo especificar de la siguiente manera

int aiFirstArray[]={1,2,3,4,5,6};

La declaración anterior declara, construye e inicializa la matriz.

Usando la matriz

Se puede acceder a los elementos de la matriz con la ayuda de índice. aiFirstArray[0] se refiere a 1, aiFirstArray[1] se refiere a 2 etc. Se puede acceder hasta aiFirstArray[n-1] donde n es el tamaño de la matriz. Accediendo a la matriz con un índice mayor o igual a tamaño de la matriz lleva a Excepción de puntero nulo.

¿Cómo obtener el tamaño de la matriz?

aiFirstArray.length da el tamaño de la matriz.

Ejemplo 3: El siguiente ejemplo inicializa los elementos de la matriz en 1,2,3,4,5,6 y los imprime.

class ArrayInitializing{
  public static void main(String args[]){
     int aiFirstArray[] = new int[6];
     for(int i=0;i<aiFirstArray.length;i++){
         aiFirstArray[i]=i+1;
     }
     for(int i=0;i<aiFirstArray.length;i++){
         System.out.println(aiFirstArray[i]);
     }
  }
}

Arreglos y recolección de basura

aiFirstArray=null;

La declaración anterior hace que la matriz apunte a nulo, significa que el objeto de matriz que estaba en el montón está listo para la recolección de basura. La referencia al objeto de matriz ahora da una excepción NullPointer.

Matrices multidimensionales

Matrices multidimensionales somos matriz de matrices con cada elemento de la matriz que contiene la referencia de otra matriz. También se denominan matrices irregulares.

Ejemplo:

int aiMdArray[][]=new int [2][];

La declaración anterior crea una matriz en la que tiene dos elementos que apuntan a nulo. No es necesario mencionar nada en el segundo corchete, ya que se pueden crear matrices individuales más adelante.

aiMdArray[0]=new int [2];

La declaración anterior inicializa el primer elemento en una nueva matriz de 2 elementos.

aiMdArray[0][0]=10;

La declaración anterior inicializa el primer elemento de la primera matriz en 10.

leer  Ordenar la matriz flotante en el ejemplo de Java

Matriz de referencia

Las matrices en Java también pueden contener referencias a objetos separados de los primitivos. Tomemos un ejemplo que explica Array of Objects.

Ejemplo 5: considere un empleado de la clase que tiene un aprendiz de subclase

class Employee{}
class Trainee extends Employee{}

Considere esta declaración:

Employee emp[]=new Employee[3];

La declaración anterior solo crea una matriz de 3 elementos que contiene 3 referencias a los empleados emp[0], emp[1], emp[2]. Tenga en cuenta que los objetos de empleado aún no se han creado. La referencia a los objetos de los empleados conduce a Excepción en tiempo de ejecución.

El siguiente código inicializa los objetos dependientes

for(int i=0;i<emp.length;i++){
emp[i]=new Employee();
}

Dado que la referencia a la clase principal también puede apuntar a objetos de la clase secundaria:

for(int i=0;i<emp.length;i++){
emp[i]=new Trainee();
}

Considere un salario de interfaz implementado por el empleado.

interface Salary{}
class Employee implements Salary{}

Sabemos que no se puede crear una instancia de Interface, pero la referencia se puede usar para apuntar a los objetos de las clases que la implementan. Entonces podemos tener un código como el siguiente:

Salary sal[]=new Salary[2];
sal[0]=new Employee();
sal[1]=new Employee();

Por avivcas

Deja una respuesta

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