Java - Matrices
Java proporciona una estructura de datos, la matriz , que almacena una colección secuencial de tamaño fijo de elementos del mismo tipo. Una matriz se usa para almacenar una colección de datos, pero a menudo es más útil pensar en una matriz como una colección de variables del mismo tipo.
En lugar de declarar variables individuales, como número0, número1, ... y número99, declara una variable de matriz como números y usa números[0], números[1] y ..., números[99] para representar variables individuales.
Este tutorial presenta cómo declarar variables de matriz, crear matrices y procesar matrices usando variables indexadas.
Declaración de variables de matriz
Para usar una matriz en un programa, debe declarar una variable para hacer referencia a la matriz y debe especificar el tipo de matriz a la que puede hacer referencia la variable. Esta es la sintaxis para declarar una variable de matriz −
Sintaxis
dataType[] arrayRefVar; // preferred way. or dataType arrayRefVar[]; // works but not preferred way.
Nota − El estilo tipoDatos[] arrayRefVar se prefiere. El estilo dataType arrayRefVar[] proviene del C/C++ y fue adoptado en Java para adaptarse a C/C++ programadores.
Ejemplo
Los siguientes fragmentos de código son ejemplos de esta sintaxis −
double[] myList; // preferred way. or double myList[]; // works but not preferred way.
Creación de matrices
Puede crear una matriz utilizando el operador new con la siguiente sintaxis −
Sintaxis
arrayRefVar = new dataType[arraySize];
La declaración anterior hace dos cosas −
-
Crea una matriz utilizando el nuevo tipo de datos [tamaño de la matriz].
-
Asigna la referencia de la matriz recién creada a la variable arrayRefVar.
La declaración de una variable de matriz, la creación de una matriz y la asignación de la referencia de la matriz a la variable se pueden combinar en una declaración, como se muestra a continuación −
dataType[] arrayRefVar = new dataType[arraySize];
Alternativamente, puede crear matrices de la siguiente manera −
dataType[] arrayRefVar = {value0, value1, ..., valuek};
Se accede a los elementos de la matriz a través del índice . Los índices de matriz están basados en 0; es decir, comienzan desde 0 hasta arrayRefVar.length-1 .
Ejemplo
La siguiente declaración declara una variable de matriz, myList, crea una matriz de 10 elementos de tipo doble y asigna su referencia a myList −
double[] myList = new double[10];
La siguiente imagen representa la matriz myList. Aquí, myList contiene diez valores dobles y los índices van del 0 al 9.
Matrices de procesamiento
Al procesar elementos de matriz, a menudo usamos for bucle o foreach bucle porque todos los elementos de una matriz son del mismo tipo y se conoce el tamaño de la matriz.
Ejemplo
Aquí hay un ejemplo completo que muestra cómo crear, inicializar y procesar arreglos −
Demostración en vivopublic class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // Print all the array elements for (int i = 0; i < myList.length; i++) { System.out.println(myList[i] + " "); } // Summing all elements double total = 0; for (int i = 0; i < myList.length; i++) { total += myList[i]; } System.out.println("Total is " + total); // Finding the largest element double max = myList[0]; for (int i = 1; i < myList.length; i++) { if (myList[i] > max) max = myList[i]; } System.out.println("Max is " + max); } }
Esto producirá el siguiente resultado −
Salida
1.9 2.9 3.4 3.5 Total is 11.7 Max is 3.5
Los bucles foreach
JDK 1.5 introdujo un nuevo bucle for conocido como bucle foreach o bucle for mejorado, que le permite recorrer la matriz completa secuencialmente sin utilizar una variable de índice.
Ejemplo
El siguiente código muestra todos los elementos en la matriz myList −
Demostración en vivopublic class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // Print all the array elements for (double element: myList) { System.out.println(element); } } }
Esto producirá el siguiente resultado −
Salida
1.9 2.9 3.4 3.5
Pasar matrices a métodos
Así como puede pasar valores de tipos primitivos a métodos, también puede pasar matrices a métodos. Por ejemplo, el siguiente método muestra los elementos en un int matriz −
Ejemplo
public static void printArray(int[] array) { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } }
Puede invocarlo pasando una matriz. Por ejemplo, la siguiente declaración invoca el método printArray para mostrar 3, 1, 2, 6, 4 y 2 −
Ejemplo
printArray(new int[]{3, 1, 2, 6, 4, 2});
Devolver una matriz desde un método
Un método también puede devolver una matriz. Por ejemplo, el siguiente método devuelve una matriz que es la inversión de otra matriz −
Ejemplo
public static int[] reverse(int[] list) { int[] result = new int[list.length]; for (int i = 0, j = result.length - 1; i < list.length; i++, j--) { result[j] = list[i]; } return result; }
La clase de matrices
La clase java.util.Arrays contiene varios métodos estáticos para ordenar y buscar arreglos, comparar arreglos y llenar elementos de arreglos. Estos métodos están sobrecargados para todos los tipos primitivos.
Sr.No. | Método y descripción |
---|---|
1 | public static int binarySearch(Object[] a, Object key) Busca en la matriz especificada de Objeto (Byte, Int, doble, etc.) el valor especificado utilizando el algoritmo de búsqueda binaria. La matriz debe ordenarse antes de realizar esta llamada. Esto devuelve el índice de la clave de búsqueda, si está contenida en la lista; de lo contrario, devuelve ( – (punto de inserción + 1)). |
2 | igual booleano estático público (long[] a, long[] a2) Devuelve verdadero si las dos matrices especificadas de largos son iguales entre sí. Dos arreglos se consideran iguales si ambos arreglos contienen el mismo número de elementos y todos los pares de elementos correspondientes en los dos arreglos son iguales. Esto devuelve verdadero si las dos matrices son iguales. Todos los demás tipos de datos primitivos (Byte, short, Int, etc.) podrían usar el mismo método. |
3 | relleno de vacío estático público (int[] a, int val) Asigna el valor int especificado a cada elemento de la matriz de enteros especificada. Todos los demás tipos de datos primitivos (Byte, short, Int, etc.) podrían usar el mismo método. |
4 | clasificación de vacío estático público (Objeto [] a) Ordena la matriz de objetos especificada en orden ascendente, de acuerdo con el orden natural de sus elementos. Todos los demás tipos de datos primitivos (Byte, short, Int, etc.) podrían usar el mismo método. |
Java
- Matrices de C#
- Operadores Java
- Matrices de copia de Java
- Interfaz Java
- Prueba de Java con recursos
- Anotaciones Java
- Matrices en C++ | Declarar | Inicializar | Ejemplos de puntero a matriz
- C++ Asignación dinámica de arreglos con ejemplo
- Tutorial de Java Arrays:declarar, crear, inicializar [ejemplo]
- Cómo crear una matriz de objetos en Java
- Algoritmo de clasificación de burbujas en Java:programa de clasificación de matrices y ejemplo