MASTER 2 ième année AIGEME Cours Java
1 Ph. CHOCHOIS
Les tableaux
Utilité d’un tableau
Nous avons vu comment manipuler des informations à l’aide des variables…
int note = 12;
String nom = "Dupont" ; char type = ‘A’;
boolean flag = true;
Si nous manipulons plusieurs informations de même type, nous pouvons ajouter des variables. …
int note1 = 12;
int note2 = 9;
int note3 = 20;
int note4 = 14;
2
Utilité d’un tableau
Comment faire si nous avons un grand nombre d’éléments à manipuler ?
Soit utiliser autant de variables que d’éléments !
Soit utiliser un tableau d’éléments. Le tableau sera un objet qui contiendra des éléments de même type (simple ou complexe).
Exemple 1: Un tableau de 4 notes:
Exemple 2. Un tableau de 3 étudiants.
Attention: Les étudiants sont des objets qui peuvent être constitués de plusieurs informations (nom, prénom n°SS, UFR…)
3
12 15 20 8
Etudiant 1 Etudiant2 etudiant3
Règles concernant les tableaux
Un tableau :
• possède un nom (ex: desNotes)
• est composé d'un nombre de cases qui détermine sa taille (4)
• est une variable dite complexe car c'est une variable constituée de plusieurs variables simples ou complexes (ici, constitué de int)
• ne peut contenir que des valeurs de même type (int)
• chaque case du tableau est appelée élément.
• les cases sont des variables (on peut changer le contenu d’une case.
4
12 15 20
Syntaxe Java concernant les tableaux
Le nom du tableau est une variable qui doit être déclarée:
Type [ ] variable Exemples:
Le type peut être primitif (int , float…), un objet Java (String) ou un objet que vous avez créé (Etudiant).
Par convention, les noms variables de type tableau sont au pluriel
5 int[] desPoints ;
float[] desNotes ; String[] desNoms ; Etudiant[] desEtudiants ;
Syntaxe Java concernant les tableaux
Un tableau est un objet Java. Pour l’utiliser, il faut donc le créer…. Ou le construire:
variable = new Type [taille]
Exemples:
Les éléments du tableau sont automatiquement initialisés par leur valeur par défaut (zéro pour les numériques, false pour les booléens, ‘ ‘ pour les caractères et null pour les objets).
6 desPoints = new int[4];
desNotes = new float[40];
desNoms = new String[5];
desEtudiants = new Etudiant[30];
Syntaxe Java concernant les tableaux
Comment alimenter le tableau (Mettre des informations dans le tableau) ? variable[indice] = valeur
Exemples:
Attention, la numérotation des indices commence à zéro. Pour écrire dans la case n, on indice avec n-1.
Exemple: desNotes[0]=8.9 met la valeur 8.9 dans la 1èrecase du tableau !
7 desPoints[2]=3;
desNotes[0]= 8.9;
desNoms[4]= "Dupont";
desEtudiants[3]= unEtudiant;
// unEtudiant est une variable de type Etudiant // et a dû être déclarée
Syntaxe Java concernant les tableaux
Comment lire une information du tableau ? variable[indice]
Exemples:
8 float note = desNotes[0];
//La variable note reçoit la valeur 9.9 System.out.println(desNoms[4]); // affiche Dupont if (desPoints[2]==3){
//…//
}
System.out.println(desEtudiants[3].getNom());
// Affiche le nom de l’étudiant contenu dans la 4ième // case du tableau en utilisant le getteur getNom
Syntaxe Java concernant les tableaux
Comment connaître la taille du tableau ? variable.length
Exemples:
9 System.out.println(desNoms.length); // affiche la taille du tableau « desNoms »
float note = desNotes[desNotes.length - 1];
// La variable note reçoit la valeur contenue dans la // dernière case du tableau
Syntaxe Java concernant les tableaux
Cas particulier : Construction d’un tableau avec des valeurs:
variable = new Type [ ] {ensemble de valeurs}
Exemples:
10 String[] desNoms = new String[] {"toto" , "titi"};
//Dans ce cas, la taille du tableau est 2
Syntaxe Java concernant les tableaux
Erreur fréquente lorsqu’on manipule les tableaux :
Si vous tentez d’accéder à un élément d’un tableau dont l’indice est hors bornes, une exception (une erreur) est déclenchée du type
« java.lang.ArrayIndexOfBoundsException » Exemple:
11 String[] desNoms = new String[] {"toto" , "titi"};
System.out.println(desNoms[2]);
Syntaxe Java des instructions répétitives
Pour parcourir, les tableaux, il faut souvent utiliser les instructions répétitives. Leur syntaxe est indiquée ci après.
WHILE:
DO … WHILE
12 while (condition) {
//… instructions }
do {
//… instructions }while (condition);
Syntaxe Java des instructions répétitives
FOR
Exemple
13 for (initialisation ; condition pour continuer ; incrémentation){
//… instructions }
for (int i=1; i<10 ; i++){
System.out.println(i);
}
Syntaxe Java des instructions répétitives
Exemple de parcours de tableau:
Est équivalent à :
14 for (int i=0 ; i<lesNoms.length;i++){
System.out.println(lesNoms[i]);
}
int i=0;
while (i<lesNoms.length){
System.out.println(lesNoms[i]);
i++;
}
Syntaxe Java des instructions répétitives
Exemple d’instruction « do… while »:
15 String n="o";
do{
n=JOptionPane.showInputDialog(null,"On continue ?");
} while (n.equals("o"));
Les tableaux à n dimensions
Java permet la manipulation de tableaux à n dimensions.
Exemple d’un tableau à 2 dimensions:
Un tableau à 2 dimensions est considéré comme un tableau de tableaux.
Ou un tableau de lignes.
La syntaxe est la suivante:
16 boolean[][] lesCases = new boolean[5][5];
lesCases[1][4]= true;
X X
X X
X X
X