matrices

Una matriz es una estructura de datos que almacena valores del mismo tipo. Se accede a un elemento de matriz individual mediante un índice entero. Por ejemplo, si a es una matriz de números enteros, entonces el valor de la expresión a[i] es igual al i-ésimo entero de la matriz. matrices de Java - 1Una matriz se declara de la siguiente manera: primero se indica el tipo de matriz, es decir, el tipo de elementos contenidos en la matriz, seguido de un par de corchetes vacíos y luego el nombre de la variable. Por ejemplo, aquí se explica cómo declarar una matriz que consta de números enteros:
int[] a;
Sin embargo, esta declaración sólo declara una variable а, sin inicializarla con una matriz real. Para crear una matriz, necesita usar el operador new.
int[] a = new int [100];
Este operador crea una matriz de 100 números enteros. Los elementos de esta matriz están numerados del 0 al 99 (no del 1 al 100). Una vez creada, la matriz se puede completar, por ejemplo, mediante un bucle.
int[] а = new int[100];
for (int i = 0; i < 100; i++)
 a[i] = i; //Заполняет массив числами от 0 до 99
Si intenta acceder a un elemento а [100](o cualquier otro elemento cuyo índice esté fuera del rango de 0 a 99) creando una matriz de 100 elementos, el programa terminará porque se producirá una excepción de índice de matriz fuera de rango. Para contar el número de elementos en una matriz, utilice el método Nombre de matriz .length. Por ejemplo,
for (int i = 0; i < a.length; i++, System.out.println(a[i]));
Una vez creada una matriz, es imposible cambiar su tamaño (aunque, por supuesto, puedes cambiar sus elementos individuales). Si necesita cambiar el tamaño de una matriz con frecuencia durante la ejecución del programa, es mejor utilizar otra estructura de datos llamada lista de matrices. Una matriz se puede declarar de dos maneras:
int[] a;
o
int a[];
La mayoría de los programadores de Java prefieren el primer estilo porque separa más claramente el tipo de matriz int [](matriz de enteros) del nombre de la variable.

Inicializadores de matrices y matrices sin nombre

Java tiene una función para crear una matriz e inicializarla simultáneamente. A continuación se muestra un ejemplo de dicha estructura sintáctica:
int[] smallPrimes = {2, 3, 5, 7, 11, 13};
Tenga en cuenta que en este caso no es necesario utilizar el operador new. Además, incluso puedes inicializar una matriz sin nombre:
new int[] {16, 19, 23, 29, 31, 37}
Esta expresión asigna memoria para una nueva matriz y la llena con los números especificados entre llaves. En este caso, se calcula su número y, en consecuencia, se determina el tamaño de la matriz. Esta construcción sintáctica es conveniente para reinicializar una matriz sin crear una nueva variable. Por ejemplo, la expresión
smallPrimes = new int{17, 19, 23, 29, 31, 37};
es una expresión abreviada
int[] anonymous = {17, 19, 23, 29, 31, 37};
smallPrimes = anonymous;
Es posible crear una matriz de tamaño cero. Una matriz de este tipo puede resultar útil al escribir un método que evalúe una matriz que resulta estar vacía. Una matriz de longitud cero se declara de la siguiente manera:
new тип Элементов[]
Tenga en cuenta que dicha matriz no es equivalente a un objeto null.

Copiando matrices

Una matriz se puede copiar a otra, pero ambas variables harán referencia a la misma matriz.
int[] luckyNumbers = smallPrimes;
luckyNumbers[5] = 12; //Теперь элемент smallPrimes[5]также es igual 12
El resultado se muestra en la figura. 3.1. Si necesita copiar todos los elementos de una matriz a otra, debe usar el método arraycopy de la clase System. Su llamada se ve así:
System.arraycopy(from, fromlndex, to, tolndex, count);
La matriz todebe ser lo suficientemente grande como para contener todos los elementos que se van a copiar. matrices de Java - 2
Fig.3.1. Copiando una matriz
Por ejemplo, los operadores que se muestran a continuación, cuyos resultados se muestran en la Fig. 3.2, cree dos matrices y luego copie los últimos cuatro elementos de la primera matriz en la segunda. La copia comienza desde la segunda posición en la matriz de origen y los elementos copiados se colocan en la matriz de destino a partir de la tercera posición.
int[] smallPrimes = {2, 3, 5, 7, 11, 13};
int[] luckyNumbers = {1001, 1002, 1003, 1004, 1005, 1006, 1007};
System.аrrаусору(smallPrimes, 2, luckyNumbers, 3, 4);
for (int i = 0; i < luckyNumbers.length; i++)
System.out.println(i + ": " + luckyNumbers[i]);
La ejecución de estas declaraciones produce el siguiente resultado.
0: 1001
1: 1002
2: 1003
3: 5
4: 7
5: 11
6: 13
matrices de Java - 3
Arroz. 3.2. Copiar elementos de matriz
Una matriz en Java es significativamente diferente de una matriz en C++. Sin embargo, es prácticamente lo mismo que un puntero a una matriz dinámica. Esto significa que el operador
int[] a = new int[100]; //Java
es equivalente al operador
int* = new int[100]; //C++,
а не
int a[100]; //C++
En Java, el []operador predeterminado verifica el rango de índices. Además, Java no tiene aritmética de punteros: no se puede incrementar un puntero para acceder al siguiente elemento de una matriz. Enlace a la fuente: matrices Java