Pasar un array a un método en Java

Mohammad Irfan 12 octubre 2023
  1. Matrices en Java
  2. Métodos en Java
  3. Pasar matrices a métodos en Java
  4. Pasar matrices a un método en Java
  5. Pasar un array multidimensional a un método en Java
  6. Comprender cómo se pasan los arrays a los métodos en Java
  7. Pasar un array a un método en Java
Pasar un array a un método en Java

Este tutorial presenta cómo pasar un array a un método en Java. También enumeramos algunos códigos de ejemplo para ayudarlo a comprender el tema.

Java es un poderoso lenguaje de programación orientado a objetos; es un lenguaje de programación de propósito general que se puede utilizar para varios propósitos. Aprendamos sobre matrices y métodos en Java y entendamos cómo pasar un array a un método.

Matrices en Java

Los arrays son una colección de tamaño fijo del mismo tipo de datos. Se almacenan en la memoria como bloques contiguos y nos permite acceder aleatoriamente a cualquier elemento del array en un tiempo constante.

Este acceso aleatorio es posible porque cada elemento de un array tiene un índice dedicado asociado. No tenemos que atravesar toda el array para llegar a un elemento en particular. Los índices de array comienzan en 0 y van a n-1, donde n es la longitud del array.

Las siguientes líneas de código explican cómo crear un array y acceder a sus elementos.

public class Main {
  public static void main(String[] args) {
    int[] arr; // Declaration
    arr = new int[5]; // Creation
    // Initialization
    arr[0] = 1;
    arr[1] = 3;
    arr[2] = 5;
    arr[3] = 7;
    arr[4] = 9;
    // Accessing Array Elements
    System.out.println("Second Element: " + arr[1]);
    System.out.println("Fourth Element: " + arr[3]);
  }
}

Producción :

Second Element: 3
Fourth Element: 7

Métodos en Java

Un método se define como un conjunto de instrucciones que se pueden utilizar para realizar una tarea en particular. Se utilizan para aumentar la reutilización de nuestro código.

Por ejemplo, si queremos encontrar el factorial de todos los números entre 1 y 10, sería mucho mejor definir un método para factorial y llamar a ese método 10 veces primero en lugar de reescribir toda la lógica del factorial 10. tiempos diferentes.

Los métodos en Java son muy similares a las funciones de otros lenguajes de programación. La única diferencia es que los métodos están asociados con un objeto, mientras que las funciones no. Dado que Java es un lenguaje completamente orientado a objetos, solo tenemos métodos en Java.

Pasar matrices a métodos en Java

Un método puede o no tomar un conjunto fijo de parámetros. Un parámetro puede ser cualquier variable que necesitemos usar para definir el cuerpo del método.

En el ejemplo de un método factorial, un parámetro puede ser el número cuyo factorial necesitamos encontrar. Pero, ¿qué pasa si necesitamos pasar un array completa a un método?

En la declaración del método, necesitamos decirle a Java que el método debe aceptar un array de un determinado tipo de datos para pasar un array a un método. Utilice el tipo de datos del array y los corchetes para indicar que el parámetro es un array.

// Method Declaration
public static void addTen(int[] arr) {
  // Method Body
}

Siempre que se llame al método, debemos pasar el nombre del array al método. El siguiente ejemplo muestra un código completo con un método que acepta un array y llama a ese método.

public class Main {
  public static void addTen(int[] arr) // int[] denotes that the parameter is an array
  {
    for (int i = 0; i < arr.length; i++) {
      arr[i] += 10;
    }
  }
  public static void main(String[] args) {
    int[] arr = {1, 3, 5, 7, 9};
    addTen(arr); // Simply pass the name of the array to the method
    for (int i = 0; i < arr.length; i++) {
      System.out.print(arr[i] + " ");
    }
  }
}

Producción :

11 13 15 17 19 

Pasar matrices a un método en Java

Considere otro ejemplo en el que pasamos dos matrices de la misma longitud a un método. El método debería imprimir la suma de las dos matrices.

public class Main {
  public static void addArrays(
      int[] arr1, int[] arr2) // Two arrays are mentioned in the method declaration
  {
    for (int i = 0; i < arr1.length; i++) {
      int sum = arr1[i] + arr2[i];
      System.out.print(sum + " ");
    }
  }
  public static void main(String[] args) {
    int[] arr1 = {1, 2, 3, 4, 5};
    int[] arr2 = {2, 4, 6, 8, 10};
    addArrays(arr1, arr2); // Passing two arrays and calling the method
  }
}

Producción :

3 6 9 12 15

Pasar un array multidimensional a un método en Java

También podemos pasar un array multidimensional a un método en Java. Necesitamos especificar el tipo de datos de los elementos del array y los corchetes de acuerdo con la dimensión del array.

Considere el siguiente ejemplo donde encontramos la suma de todos los elementos presentes en un array 2-D.

public class Main {
  public static void sum(int[][] arr) {
    int sum = 0;
    for (int i = 0; i < arr.length; i++) {
      for (int j = 0; j < arr[0].length; j++) {
        sum = sum + arr[i][j];
      }
    }
    System.out.print("Sum of all elements is: " + sum);
  }
  public static void main(String[] args) {
    int[][] arr = {{1, 2, 3, 4, 5}, {2, 4, 6, 8, 10}, {1, 3, 5, 7, 9}};
    sum(arr);
  }
}

Producción :

Sum of all elements is: 70

Comprender cómo se pasan los arrays a los métodos en Java

Echemos un vistazo e intentemos comprender qué sucede detrás de escena cuando pasamos un parámetro a un método.

En Java, los parámetros son un tipo de paso por valor. Significa que cada vez que pasamos una variable a un método, lo que usa el método pasa una copia del valor de esa variable y no la variable original en sí.

Por ejemplo, consideremos el siguiente caso en el que un método acepta un número entero y agrega 10 a ese número entero.

public class Main {
  public static void addTen(int num) {
    num = num + 10;
  }
  public static void main(String[] args) {
    int a = 12;
    addTen(a);
    System.out.print(a);
  }
}

Producción :

12

¿Cuál cree que será la salida del código anterior? El valor del número debe incrementarse en 10, ¿verdad?

Lo que sucede es que aunque el entero se pasa al método, una copia del valor entero es lo que realmente recibe el método. Entonces, todos los cambios se realizan en esa copia y no se realiza ningún cambio en el entero original. Sin embargo, esto solo ocurre para tipos de datos primitivos como int.

Este no es el caso de los arrays porque los arrays no son tipos de datos primitivos y se consideran objetos contenedores que hacen referencia a una ubicación de memoria en la memoria del montón. Como resultado, almacenan el valor de una ubicación de memoria y no los datos reales.

Siempre que cambiemos algo en esa ubicación de memoria, ese cambio será visible para todos los punteros (o referencias) que apuntan a esa ubicación de memoria. Recuerde que los arrays también se pasan por valor en Java, pero ese valor es en realidad una ubicación de memoria.

Considere el código mencionado anteriormente, donde hemos creado un método para agregar 10 a cada elemento de un array.

Pasar un array a un método en Java

Con frecuencia necesitamos pasar una colección del mismo tipo de datos a un método. Los arrays son las más adecuadas para estas tareas y podemos pasar un array al método.

En la declaración del método, necesitamos especificar claramente que el método debe aceptar un array del tipo de datos mencionado; esto se hace usando el tipo de datos y corchetes (por ejemplo, int [] arrayName).

Mientras llamamos al método, podemos ingresar el nombre del array. En este tutorial, también aprendimos cómo los métodos tratan los arrays y cómo se actualiza la ubicación de la memoria que almacena los elementos de un array.

Artículo relacionado - Java Array

Artículo relacionado - Java Method