1. Tableaux en mémoire
Dans les exemples précédents, les illustrations manquaient un peu de précision.
Lors de la création de tableaux (comme lors de la création de chaînes), deux blocs de mémoire distincts sont alloués : un pour stocker le tableau (conteneur) lui-même et un second bloc pour la variable qui stocke son adresse . L'image ci-dessous représente cette précision :

La mémoire allouée pour le tableau d' 10 intéléments et la int[]variable qui stocke l' adresse du inttableau, est indiquée en vert.
A titre de comparaison, une variable ordinaire intstockant la valeur 199est représentée en bleu.
Cela rappelle un peu le stockage de chaînes en mémoire, vous ne pensez pas ?
C'est vrai, les cordes. Et tout comme lorsque vous travaillez avec des chaînes, vous pouvez assigner des variables de tableau les unes aux autres :
| Code | Explication |
|---|---|
|
Créer un tableau d' 10 intéléments. Attribuez la valeur 4à la cellule avec index 2. Attribuez la valeur 9à la cellule avec index 7. Dans la bvariable, enregistrez l'adresse stockée dans la avariable. Maintenant aet bpointez sur le même objet tableau en mémoire. Dans la cellule de l'objet tableau avec index 9, écrivez la somme des valeurs stockées dans les cellules 2(qui stocke la valeur 4) et 7(qui stocke la valeur 9). |
L'objet tableau reste là où il était, et les variables aet bstockent la même adresse (référence) au même objet. Regarde l'image:
2. Plus de détails sur l'utilisation des tableaux
Vous pouvez créer un tableau d'éléments de n'importe quel type. Pour ce faire, écrivez simplement des crochets après le nom du type. En général, la création d'un tableau ressemble à ceci :
type[] name = new type[number];
Où type est le type des éléments que nous allons stocker dans le tableau. Name est le nom de la variable que nous utiliserons pour faire référence au tableau, et number est le nombre de cellules dans le tableau.
L'exemple ci-dessus est la forme canonique pour créer une variable tableau et un objet tableau. En réalité, ce sont deux entités distinctes.
Vous pouvez créer une variable tableau séparément d'un objet tableau :
type[] name;
name = new type[number];
Et encore un point non négligeable :
Exemples:
| Code | Explication |
|---|---|
|
Créer un tableau d' néléments |
|
Créer un tableau avec 203des éléments |
|
|
0..99un
ArrayIndexOfBoundException, ce qui signifie que l'index était en dehors des limites du tableau.
3. Longueur du tableau
Comme vous l'avez vu dans l'exemple précédent, vous pouvez créer une variable tableau par elle-même, puis lui affecter ultérieurement une valeur (une référence à un objet tableau) quelque part dans le code. Vous pouvez même faire ceci :
| Code | Explication |
|---|---|
|
Créez une variable tableau dont le type est int[]Si la avariable est inférieure à 10, créez un tableau d' 10éléments. Sinon créer un tableau d' 20éléments |
Et maintenant, que pouvez-vous faire d'autre avec un tel tableau ? Comment savoir combien d'éléments il contient ?
Pour vous aider, les tableaux ont une propriété spéciale (variable) nommée length. Vous pouvez trouver la longueur d'un tableau à l'aide de cette expression :
array.length;
Voici arrayle nom de la variable tableau et lengthest le nom de la propriété du tableau. La valeur de la lengthpropriété ne peut pas être modifiée : la lengthpropriété elle-même peut être affectée à d'autres variables, mais rien ne peut lui être affecté (si vous essayez de le faire, le programme ne compilera tout simplement pas).
On peut continuer avec l'exemple précédent comme ceci :
| Code | Explication |
|---|---|
|
Créez une variable tableau dont le type est int[]Si la avariable est inférieure à 10, créez un tableau d' 10éléments. Sinon créer un tableau d' 20éléments Boucler sur tous les éléments du tableau : de 0à longueurarray.length - 1 |
4. Résumé des faits sur les tableaux en Java
Récapitulons ce que nous savons sur les tableaux :
Fait 1. Un tableau se compose de plusieurs cellules.
Fait 2. Vous accédez à une cellule spécifique en utilisant son numéro (index).
Fait 3. Toutes les cellules sont du même type.
Fait 4. La valeur initiale de toutes les cellules est 0 (si les cellules stockent des nombres), null(si les cellules stockent des références d'objet) ou false(si les cellules stockent booleandes valeurs). Vous en apprendrez plus sur les valeurs par défaut dans ce chapitre .
Le fait 5. String[] list n'est que la déclaration d'une variable. Cela ne crée pas le conteneur (objet tableau) lui-même. Pour utiliser la variable, vous devez d'abord créer un tableau (conteneur) et l'affecter à la variable. Voir l'exemple ci-dessous.
Fait 6. Lorsque nous créons un objet tableau (conteneur), nous devons indiquer sa taille, c'est-à-dire le nombre de cellules qu'il contient. Cela se fait avec une instruction comme : new TypeName[n];
Fait 7. La longueur d'un tableau peut être trouvée en utilisant la .lengthpropriété.
Fait 8. Après avoir créé un tableau, vous ne pouvez pas modifier le type de ses éléments ou le nombre d'éléments qu'il stocke.
| Code | Explication |
|---|---|
|
sest nulllistestnull |
|
La listvariable stocke une référence à un objet : un tableau de chaînes composé d' 10éléments. nest10 |
|
Se réfère maintenant |
|
Une exception (erreur de programme) sera lancée, c'est-à-dire que le programme plantera. liststocke une référence ànull |
|
Une exception de tableau hors limites (erreur de programme) sera générée. Si a liststocke 10des éléments/cellules, alors les indices valides sont : 0 1 2 3 4 5 6 7 8 9— 10éléments. |
GO TO FULL VERSION