Un tableau peut être argument d'une méthode ou retourné par une méthode. Le tableau argument est passé par valeur ; or, la valeur de cet argument est une référence à un tableau ; c'est cette référence qui sert à initialiser le paramètre correspondant, lors de l'invocation de la méthode. Ceci permet à la méthode d'opérer sur le tableau. On peut donc en profiter pour faire modifier la valeur d'un élément du tableau par la fonction. Par exemple, on échange la valeur de deux éléments d'un tableau par :
static void échangerÉléments(double[] a, int m, int n) { double temp = a[m] ; a[m] = a[n] ; a[n] = temp; } public static void main (String[] args) { double[] a = {1, 2, 3, 4, 5, 6}; échangerÉléments(a, 2, 4); // ... }
Un tableau peut être retourné par une méthode. Par exemple, la méthode suivante calcule le tableau somme de deux tableaux :
static double[] vecteurAdd(double[] x, double[] y) { int n = Math.min(x.length, y.length); double[] z = new double[n]; for (int i=0; i<n; i++) { z[i] = x[i] + y[i]; } return z; }
On l'invoque ainsi :
double[] x = {1.0, 2.0, 3.0}; double[] y = {4.0, 5.0, 6.0}; double[] z = vecteurAdd(x, y);
Il est souvent commode d'utiliser un tableau pour rassembler plusieurs valeurs de retour, quand ces valeurs sont de même nature et que leur nombre n'est pas connu. Par exemple, si l'on demande de calculer les solutions réelles d'une équation du deuxième degré (représentées grâce à une classe Trinome), on pourra retourner ces solutions dans un tableau :
double[] solutions() { ... }
Une invocation de cette méthode aura la forme suivante :
Trinome e = new Trinome(3.0, -2.6, 0.5); double[] racines = e.solutions();
On pourra alors accéder au nombre de solutions par racines.length et, selon cette valeur, aux racines éventuelles par racines[0] et racines[1].