Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

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 −

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 vivo
public 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 vivo
public 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

  1. Matrices de C#
  2. Operadores Java
  3. Matrices de copia de Java
  4. Interfaz Java
  5. Prueba de Java con recursos
  6. Anotaciones Java
  7. Matrices en C++ | Declarar | Inicializar | Ejemplos de puntero a matriz
  8. C++ Asignación dinámica de arreglos con ejemplo
  9. Tutorial de Java Arrays:declarar, crear, inicializar [ejemplo]
  10. Cómo crear una matriz de objetos en Java
  11. Algoritmo de clasificación de burbujas en Java:programa de clasificación de matrices y ejemplo