Passer un tableau à une méthode en Java

Mohammad Irfan 12 octobre 2023
  1. Tableaux en Java
  2. Méthodes en Java
  3. Passer des tableaux aux méthodes en Java
  4. Passer des tableaux à une méthode en Java
  5. Passer un tableau multidimensionnel à une méthode en Java
  6. Comprendre comment les tableaux sont transmis aux méthodes en Java
  7. Passer un tableau à une méthode en Java
Passer un tableau à une méthode en Java

Ce tutoriel présente comment passer un tableau à une méthode en Java. Nous avons également répertorié quelques exemples de codes pour vous aider à comprendre le sujet.

Java est un puissant langage de programmation orienté objet ; c’est un langage de programmation à usage général qui peut être utilisé à diverses fins. Apprenons les tableaux et les méthodes en Java et comprenons comment passer un tableau à une méthode.

Tableaux en Java

Les tableaux sont une collection de taille fixe du même type de données. Ils sont stockés dans la mémoire sous forme de blocs contigus, et cela nous permet d’accéder de manière aléatoire à n’importe quel élément du tableau à un instant constant.

Cet accès aléatoire est possible car chaque élément d’un tableau a un index dédié qui lui est associé. Nous n’avons pas à parcourir tout le tableau pour atteindre un élément particulier. Les indices de tableau commencent à 0 et vont à n-1, où n est la longueur du tableau.

Les lignes de code suivantes expliquent comment créer un tableau et accéder à ses éléments.

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]);
  }
}

Production:

Second Element: 3
Fourth Element: 7

Méthodes en Java

Une méthode est définie comme un ensemble d’instructions qui peuvent être utilisées pour accomplir une tâche particulière. Ils sont utilisés pour augmenter la réutilisabilité de notre code.

Par exemple, si nous voulons trouver la factorielle de tous les nombres entre 1 et 10, il serait bien préférable de définir une méthode pour la factorielle et d’appeler cette méthode 10 fois d’abord au lieu de réécrire toute la logique de la factorielle 10 des moments différents.

Les méthodes de Java sont très similaires aux fonctions d’autres langages de programmation. La seule différence est que les méthodes sont associées à un objet alors que les fonctions ne le sont pas. Puisque Java est un langage entièrement orienté objet, nous n’avons que des méthodes en Java.

Passer des tableaux aux méthodes en Java

Une méthode peut ou non prendre un ensemble fixe de paramètres. Un paramètre peut être n’importe quelle variable que nous devons utiliser pour définir le corps de la méthode.

Dans l’exemple d’une méthode factorielle, un paramètre peut être le nombre dont nous devons trouver la factorielle. Mais que se passe-t-il si nous devons passer un tableau entier à une méthode ?

Dans la déclaration de méthode, nous devons indiquer à Java que la méthode doit accepter un tableau d’un certain type de données pour transmettre un tableau à une méthode. Utilisez le type de données du tableau et des crochets pour indiquer que le paramètre est un tableau.

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

Chaque fois que la méthode est appelée, nous devons passer le nom du tableau à la méthode. L’exemple suivant montre un code complet avec une méthode qui accepte un tableau et appelle cette méthode.

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] + " ");
    }
  }
}

Production:

11 13 15 17 19 

Passer des tableaux à une méthode en Java

Considérons un autre exemple où nous passons deux tableaux de même longueur à une méthode. La méthode doit imprimer la somme des deux tableaux.

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
  }
}

Production:

3 6 9 12 15

Passer un tableau multidimensionnel à une méthode en Java

Nous pouvons également passer un tableau multidimensionnel à une méthode en Java. Nous devons spécifier le type de données des éléments du tableau et des crochets en fonction de la dimension du tableau.

Considérons l’exemple suivant où nous trouvons la somme de tous les éléments présents dans un tableau 2D.

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);
  }
}

Production:

Sum of all elements is: 70

Comprendre comment les tableaux sont transmis aux méthodes en Java

Jetons un coup d’œil et essayons de comprendre ce qui se passe dans les coulisses lorsque nous passons un paramètre à une méthode.

En Java, les paramètres sont un type de valeur transmise. Cela signifie que chaque fois que nous passons une variable à une méthode, une copie de la valeur de cette variable est transmise par ce que la méthode utilise et non par la variable d’origine elle-même.

Par exemple, considérons le cas suivant où une méthode accepte un entier et ajoute 10 à cet entier.

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);
  }
}

Production:

12

À votre avis, quelle sera la sortie du code ci-dessus ? La valeur du nombre doit être incrémentée de 10, non ?

Ce qui se passe, c’est que même si l’entier est passé à la méthode, une copie de la valeur entière est ce que la méthode reçoit réellement. Ainsi, toutes les modifications sont apportées à cette copie et aucune modification n’est apportée à l’entier d’origine. Cependant, cela ne se produit que pour les types de données primitifs comme int.

Ce n’est pas le cas pour les tableaux car les tableaux ne sont pas des types de données primitifs et sont considérés comme des container qui font référence à un emplacement mémoire dans la mémoire du tas. En conséquence, ils stockent la valeur d’un emplacement mémoire et non les données réelles.

Chaque fois que nous modifions quelque chose dans cet emplacement mémoire, ce changement sera visible pour tous les pointeurs (ou références) pointant vers cet emplacement mémoire. N’oubliez pas que les tableaux sont également transmis par valeur en Java, mais cette valeur est en fait un emplacement mémoire.

Considérez le code mentionné ci-dessus, où nous avons créé une méthode pour ajouter 10 à chaque élément d’un tableau.

Passer un tableau à une méthode en Java

Nous avons souvent besoin de passer une collection du même type de données à une méthode. Les tableaux sont les mieux adaptés à ces tâches, et nous pouvons passer un tableau à la méthode.

Dans la déclaration de méthode, nous devons clairement spécifier que la méthode doit accepter un tableau du type de données mentionné ; cela se fait en utilisant le type de données et des crochets (par exemple, int[] arrayName).

Lors de l’appel de la méthode, nous pouvons entrer le nom du tableau. Dans ce tutoriel, nous avons également appris comment les méthodes traitent les tableaux et comment l’emplacement mémoire stockant les éléments d’un tableau est mis à jour.

Article connexe - Java Array

Article connexe - Java Method