.. author:: Marie-Marie van der Beek, Pablo Gonzalez Alvarez, Antoine Habran
Un tableau est une structure de données que l'on peut représenter par un nombre
de cases. Chaque case peut contenir une donnée de type primitif
(boolean
, int
, ...) ou un objet (vous verrez plus en détails les objets dans une section ultérieure). Par exemple on peut
stocker des entiers dans un tableau de int
.
Un tableau est caractérisée par sa taille, qui est le nombre de cases pouvant
contenir chacune une donnée et par le type de données qu'elles contiennent. La taille d'un tableau A
est donnée par A.length
. Cette taille ne pourra plus être changée après que le tableau est créé.
En Java
, un tableau contient que des éléments du même type.
Voici la syntaxe pour initialiser un tableau vide contenant des données de
type TYPE
et ayant une taille TAILLE
:
TYPE[] nom = new TYPE[TAILLE]; // (1)
On peut aussi écrire l'initialisation comme :
TYPE nom[] = new TYPE[TAILLE]; // (2)
Par simplicité, on utilisera par la suite la syntaxe en (1).
Pour remplir ce tableau de données, on utilise l'indice de la case que l'on veut remplir.
L'indice d'une donnée est le numéro de la case du tableau qui contient cette donnée.
L'indice commence à 0 et va jusqu'à TAILLE-1
, c'est-à-dire que la première case est à l'indice 0, la deuxième à l'indice 1, ..., et la dernière à l'indice TAILLE-1
.
nom[INDICE] = VALEUR;
Il est également possible d'initialiser un tableau non-vide de taille n
contenant un ensemble d'éléments de type TYPE
E0, E1, ..., En :
TYPE[] nom = {E0, E1, ..., En};
Les deux exemples suivants sont donc équivalents :
int[] tab = {11, 12, 13}; // le tableau tab est un tableau de 3 éléments, le premier est 11, le deuxième est 12, le troisième est 13
int[] tab = new int[3];
tab[0] = 11; // le premier élément du tableau tab devient 11
tab[1] = 12; // le deuxième élément du tableau tab devient 12
tab[3] = 13; // le troisième élément du tableau tab devient 13
Modifie le code suivant pour créer un tableau vide de taille 10 :
/*
* Un programme qui initialise un tableau vide de 5 entiers
*/
public class Tableau {
public static void main (String[] args) {
// affiche à l’écran
int[] tab = new int[5];
} // fin de main
} // fin de la classe Tableau
Par défaut, si aucune valeur n'est assignée au cases d'un tableau, Java initialise les valeurs du tableau en fonction du type de données. On dira que le tableau est vide. Voici un tableau des valeurs par défaut en fonction de quelques type de données :
Tableaux de | Valeurs par défaut |
---|---|
int |
0 |
float |
0.0f |
boolean |
false |
char |
'\u0000' |
String |
null |
Pour plus de détails, se référer à la Javadoc [1].
[1] | https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.5 |
Un tableau Java
est :
- Une structure de données indexée
Good job!
- Un tableau blanc sur lequel on dessine des cases au feutre
Donner une définition plus précise.
- Un tableau noir sur lequel on dessine des cases à la craie
Donner une définition plus précise.
Cocher les cases correctes :
int[] tab = new int[100];
Good job!
int tab[] = new int[100];
Good job!
int[] tab = new int[100]
il manque un ``;``
int[] tab = int[100];
il manque le mot-clef ``new``
int tab = int[100];
il manque des crochets
int []tab = new int[100];
Les crochets sont mal placés
int tab[] = new int[100]
il manque un ``;``
int tab[] = int[100];
il manque le mot-clef ``new``
On initialise le tableau suivant :
String tab[] = {1, 2, 3}
Quelle elle la valeur de tab[0]
?
- Aucune des autres valeurs proposées
Good job!
- 0
- 1
- 2
- 3
Il manque un ;
Parmi les déclarations suivantes, quelle est celle qui permet de déclarer correctement un tableau dont la référence est dénommée tab
et qui peut contenir 5 nombres entiers ?
int[] tab = new int[5];
C'est la déclaration la plus courante pour un tableau d'entiers. Notez que cette ligne combine une déclaration (
int[] tab
et la création du tableau correspondant permettant de stocker 5 éléments de typeint
.int[] tab; tab = new int[5];
La première ligne déclare que
tab
est une référence vers un tableau d'entiers. La deuxième ligne associe cette référence à un tableau permettant de stocker 5 entiers.
tab = int [5];
Cette ligne est incorrecte.
tab
n'a pas été déclaré préalablement et il faut utiliser le mot clénew
pour initialiser un tableau.tab = new int[5];
Cette ligne est incorrecte.
tab
n'a pas été déclaré préalablement. Il faut faire précéder cette ligne d'une déclaration detab
.int[] tab = new int[];
Cette ligne est incorrecte. Lorsque l'on initialise un tableau, il faut spécifier le nombre d'éléments du tableau entre [] dans le membre de droite. En Java, les tableaux ont une taille fixe qui est définie à leur création.
int[5] tab = new int[];
Cette ligne est incorrecte. Lorsque l'on initialise un tableau, il faut spécifier le nombre d'éléments du tableau entre [] dans le membre de droite. En Java, les tableaux ont une taille fixe qui est définie à leur création.
int tab[5] = new int[];
Cette ligne est incorrecte. Lorsque l'on initialise un tableau, il faut spécifier le nombre d'éléments du tableau entre [] dans le membre de droite.
Laquelle des lignes ci-dessous déclare un tableau contenant trois nombres réels et l'initialise avec les valeurs -1.0
, 0.0
et 1.0
.
double[] t = new double[] {-1.0, 0.0, 1.0};
Cette ligne est correcte. Le livre la préfère à la ligne
double[] t = { -1.0, 0.0, 1.0};
même si les deux sont équivalentes pour Java.double[] t = {-1.0, 0.0, 1.0};
Cette ligne est correcte. Le livre préfère la ligne
double[] t = new double[] { -1.0, 0.0, 1.0};
qui est plus explicite même si les deux sont équivalentes pour Java.
double[3] t = {-1.0, 0.0, 1.0};
En Java, il n'existe pas de type
double[3]
pouvant être mis dans une déclaration.double t = {-1.0, 0.0, 1.0};
En Java,
double t
déclare un réel et non un tableau de réels.double[] t = new double[-1.0, 0.0,1.0];
Cette ligne n'est pas syntaxiquement correct.
double[] t = new double{-1.0,0.0,1.0};
Cette ligne n'est pas syntaxiquement correcte.
double[] t = [-1.0, 0.0, 1.0];
Cette ligne n'est pas syntaxiquement correcte. Ne confondez pas
{
et[
.
Une fois qu'un tableau a été déclaré et initialisé, il faut parfois pouvoir connaître le nombre d'éléments se trouvant dans le tableau. Lequel des codes ci-dessous affiche-t-il le nombre d'entiers dans le tableau tab
déclaré via int[] tab = new int[]{1,2,7,9,3,99,-12,78,119}
?
System.out.println(tab.length);
System.out.println(tab.length());
En Java, la syntaxe
tab.length()
correspond à l'exécution de la méthodelength()
sur l'objet dont la référence esttab
. Les tableaux Java ne sont pas des objets ayant des méthodes que l'on peut appeler.System.out.println(tab.size);
tab.size
n'existe pas.System.out.println(tab[0]);
tab[0]
est le premier élément du tableautab
et non le nombre d'éléments présents dans le tableau.System.out.println(tab.[length]);
Cette ligne est syntaxiquement incorrecte.
.. author:: Marie-Marie van der Beek, Pablo Gonzalez Alvarez