« Salut, Amigo ! »

« Coucou, Ellie ! »

« Aujourd'hui, je vais te parler d'une nouvelle entité intéressante : les tableaux. Un tableau est un type de données qui permet de stocker plusieurs valeurs au lieu d'une seule. »

Tableaux - 1

« Commençons par une analogie. Comparons une maison et un immeuble. Une maison ordinaire est habituellement occupée par une seule famille, mais un immeuble est divisé en plusieurs appartements. Pour envoyer une lettre à une famille qui vit dans une maison, tu dois indiquer l'adresse unique de la maison. Pour envoyer une lettre à une famille qui réside dans un immeuble, tu dois indiquer une adresse unique et le numéro de l'appartement dans l'immeuble. »

« Tout me semble clair jusque-là. »

« Une variable de tableau est comme un appartement. Tu peux stocker de nombreuses valeurs dedans au lieu d'une seule. Une telle variable a plusieurs appartements (éléments) que tu peux consulter à l'aide d'un numéro d'appartement (indice). Pour ce faire, tu indiques l'indice de l'élément de tableau auquel tu souhaites accéder entre crochets après le nom de la variable de tableau. C'est très simple. »

« J'espère bien, Ellie. »

« Une variable d'appartement (un tableau) peut contenir des éléments d'un type quelconque. Il te suffit d'écrire 'NomType[] nom_variable' au lieu de 'NomType nom_variable'. »

Voici quelques exemples :

Code Description
String[] list = new String[5];
Crée un tableau de String avec 5 éléments
System.out.println(list[0]);
System.out.println(list[1]);
System.out.println(list[2]);
System.out.println(list[3]);
System.out.println(list[4]);
Cinq valeurs 'null' s'afficheront.

Pour accéder à la valeur d'un élément de tableau particulier, utilise des crochets et l'indice de l'élément.

int listCount = list.length;
listCount recevra la valeur 5, à savoir le nombre d'éléments dans le tableau list.
list.length stocke la longueur du tableau (nombre d'éléments).
list[1] = "Mom";
String s = list[1];
Lors de l'affectation d'objets aux éléments du tableau, tu dois indiquer l'indice des éléments entre crochets.
for (int i = 0; i < list.length; i++)
{
     System.out.println(list[i]);
}
Affiche les valeurs de tous les éléments du tableau à l'écran.

« C'est super intéressant ! »

« Un tableau nécessite une initialisation supplémentaire. »

— ?

« Avec une variable ordinaire, tu peux simplement la déclarer puis lui affecter différentes valeurs. Avec un tableau, c'est un peu plus compliqué. »

« Tu dois d'abord créer un conteneur qui contiendra N éléments, et seulement alors tu pourras commencer à placer des valeurs dedans. »

Code Description
String[] list = null;
Le tableau list est null. Il peut seulement stocker une référence à un conteneur d'éléments. Tu dois créer le conteneur séparément.
String[] list = new String[5];
Crée un conteneur pour 5 éléments et affecte une référence à la variable list. Ce conteneur a 5 appartements (éléments) numérotés 0, 1, 2, 3 et 4.
String[] list = new String[1];
Crée un conteneur pour 1 élément et affecte une référence à la variable list. Pour mettre quelque chose dans ce conteneur, tu dois écrire quelque chose du genre list[0] = "Yo!";
String[] list = new String[0];
Crée un conteneur pour 0 éléments et affecte une référence à la variable list. Tu ne peux pas stocker n'importe quoi dans ce conteneur.

« Je vois. Ça commence à devenir plus clair. »

« Voici quelques faits essentiels sur les tableaux : »

1) Un tableau se compose de nombreux éléments.

2) Pour accéder à un certain élément, tu indiques son numéro (indice).

3) Tous les éléments sont du même type.

4) La valeur initiale de tous les éléments est null ; pour les tableaux de types primitifs, la valeur initiale est 0, 0,0 (pour les nombres fractionnaires) ou false (pour les booléens). C'est exactement pareil que pour les variables non initialisées qui ne sont pas dans des tableaux.

5) String[] liste ne fait que déclarer une variable. Tu dois d'abord créer un tableau (conteneur), mettre quelque chose dedans, puis seulement alors l'utiliser (regarde l'exemple ci-dessous).

6) Lorsque nous créons un objet de tableau (conteneur), tu dois indiquer sa longueur, ou le nombre d'éléments. Nous le faisons en utilisant new NomType[n];

Tableaux - 2

Voici quelques exemples :

Code Description
String s;
String[] list;
s vaut null
list vaut null
list = new String[10];
int n = list.length;
La variable list stocke une référence à un objet : un tableau de 10 éléments String
n vaut 10
list = new String[0];
Maintenant, list contient un tableau à 0 élément. Le tableau existe, mais il ne peut pas stocker de chaînes.
list = null;
System.out.println(list[1]);
Cela lèvera une exception (erreur d'exécution) et le programme se terminera de façon anormale : list contient une référence null.
list = new String[10];
System.out.println(list[11]);
Cela lèvera une exception (erreur d'exécution) : l'indice se trouve hors des limites du tableau.

Si list contient 10 éléments, les indices valides sont : 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9 (pour un total de 10 indices).