Vous êtes sur la page 1sur 27

Chapitre 06

Les tableaux et les listes

Mohamed Salah Bouhlel

1
Algorithme, variable, types de
données et opérateurs

Sommaire de la présentation

• Les tableaux
• Les tableaux à une dimension
• Les tableaux à plusieurs dimensions
• Les listes
• La classe Arrays
• La boucle for avec les tableaux
• Questions

Mohamed Salah Bouhlel Cours Introduction à la programmation 2


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Introduction

• Si on voulait représenter l’ensemble des moyennes relatives à un ensemble


d’étudiants (30 étudiants) d’une classe donnée.
• il faudra alors déclarer 30 variables réelles indépendantes pour contenir chacune la
moyenne correspondant à un étudiant.

• On doit disposer de structures de données qui peuvent englober toutes ses


données. On parlera dans ce cas de Structure de données composée ou d’un Type
de données composé.

Mohamed Salah Bouhlel Cours Introduction à la programmation 3


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Type composé en JAVA

• Avec java nous disposons de deux catégories de structure :

• Les tableaux :
• taille fixe
• taille variable

• Les objets (qui feront l’objet du chapitre suivant)

Mohamed Salah Bouhlel Cours Introduction à la programmation 4


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Définition

• Les tableaux permettent de faire référence à un ensemble de variables de même


type par le même nom et d’utiliser un index pour les différencier.

• Le premier élément d’un tableau a toujours pour index zéro.

• Le nombre de cases du tableau est spécifié au moment de la création du tableau.

• Un tableau peut avoir une ou plusieurs dimensions.


Mohamed Salah Bouhlel Cours Introduction à la programmation 5
MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Définition

5 2 4 3 5 4 8 7

0 1 2 3 4 5 6 7
Indice du premier Indice du dernier
élément élément

Mohamed Salah Bouhlel Cours Introduction à la programmation 6


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Définition

• Il faut prendre en considération que les caractéristiques des tableaux de taille fixe
(type et nombre de case) ne peuvent plus être modifiées après la création.

• Pour manipuler les tableaux, nous allons suivre les étapes suivantes :
• Déclarer une variable pour manipuler le tableau.
• Créer le tableau
• Modifier les éléments du tableau

Mohamed Salah Bouhlel Cours Introduction à la programmation 7


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Déclaration du tableau

type [ ] nom_tableau;

type nom_tableau [ ];

Mohamed Salah Bouhlel Cours Introduction à la programmation 8


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Création du tableau

nom_tableau = new type [ taille_du_tableau] ;

Mohamed Salah Bouhlel Cours Introduction à la programmation 9


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Création du tableau

• Il est important de savoir que lors de la création du tableau, des valeurs par
défauts sont affectées aux cases du tableau selon le tableau suivant :

Type Valeur par défaut


Les entiers 0
Les réels 0.0
Les caractère '\u0000' (le caractère vide '')
Les booléens false
Les string et objets en général null

Mohamed Salah Bouhlel Cours Introduction à la programmation 10


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Modification du tableau

var x = nom_tableau [ indice ] ; //Lecture du contenu

nom_tableau [ indice ] = valeur ; //Modification du contenu

Mohamed Salah Bouhlel Cours Introduction à la programmation 11


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Exemple

//Déclaration d'un tableau d'entier


int [] tab;
//Déclaration du scanner
nom tableau sc =new Scanner(System.in);
//Création d'un tableau d'entier de taille 5
tab = new int [5] ;
//Modification du contenu du tableau
for (int i = 0; i < 5; i++){
System.out.print("Saisir tab["+i+"] : ");
tab[i] = sc.nextInt();
}
//Affichage du tableau
for (int i = 0; i < 5; i++)
System.out.print(tab[i]+" ");
Mohamed Salah Bouhlel Cours Introduction à la programmation 12
MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Longueur du tableau et exception

• Vous pouvez récupérer la taille du tableau à partir de la variable length.

• Il faut faire attention en manipulant un tableau. Les limites de l’indice sont 0 et la


taille du tableau moins 1 (tableau.length - 1).

• Si l’indice dépasse ces limites, alors une exception du type


ArrayIndexOutOfBoundException sera lancée.

Mohamed Salah Bouhlel Cours Introduction à la programmation 13


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Définition

• En java, un tableau à deux dimensions est un tableau de tableau (tableau


contenant d’autres tableaux).
cl = 0 cl = 2

lg = 0 14 12 13
18 14 16
lg = 2 15 11 19

Mohamed Salah Bouhlel Cours Introduction à la programmation 14


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Déclaration du tableau

type [ ] [ ] nom_tableau;

type nom_tableau [ ] [ ];

Mohamed Salah Bouhlel Cours Introduction à la programmation 15


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Création du tableau

nom_tableau = new type [ taille_Dim1] [ taille_Dim2];

Mohamed Salah Bouhlel Cours Introduction à la programmation 16


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Utilisation du tableau

• pour utiliser le tableau à deux dimensions, il faut spécifier les indices de la case
en question.
//Déclaration d'un tableau à deux dimensions
int [][] tab;
//Creations du tableau
tab = new int [2][3];
//initialisation de la première ligne
tab[0][0] = 14;
tab[0][1] = 12;
tab[0][2] = 13;
//initialisation de la seconde ligne
tab[1][0] = 18;
tab[1][1] = 14;
tab[1][2] = 16;

Mohamed Salah Bouhlel Cours Introduction à la programmation 17


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Exercice

• Écrire un programme qui saisit un tableau et calcule la moyenne d’un tableau.

Mohamed Salah Bouhlel Cours Introduction à la programmation 18


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Définition

• Java nous fourni tout un Framework pour la manipulation des collections.

• Pour des raisons de simplification, nous allons nous intéresser à une seule classe
de tout ce Framework qui est la classe ArrayList.

• La classe ArrayList représente un tableau d'objets dont la taille est dynamique


(variable).

Mohamed Salah Bouhlel Cours Introduction à la programmation 19


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Déclaration et création

ArrayList liste = new ArrayList(); Création d’une liste à partir d’une autre.

ArrayList liste = new ArrayList(10); Création d’une liste vide.

ArrayList liste = new ArrayList();


liste.add(1); Création d’une liste vide avec une taille
liste.add(15); initiale = 10. Lorsqu’on arrive à 10 elts, la
liste.add(14); taille augmente automatiquement.
ArrayList liste2 = new ArrayList(liste);

Mohamed Salah Bouhlel Cours Introduction à la programmation 20


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Déclaration et création

• Avec les déclarations précédentes, nous pouvons ajouter toutes sorte d’éléments
dans notre liste.
• En général, lors de la programmation, on a besoin de spécifier le contenu présent
dans la liste. Les exemples suivants montrent la création de liste de chaine de
caractères.

ArrayList<String> liste = new ArrayList<>();


ArrayList<String> liste = new ArrayList<>(10);
ArrayList <String>liste2 = new ArrayList<>(liste);

Mohamed Salah Bouhlel Cours Introduction à la programmation 21


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Utilisation

Méthode Rôle
boolean add(E) Ajouter un élément à la fin du tableau
boolean addAll(Collection) Ajouter tous les éléments de la collection fournie en paramètre à la fin du tableau
void clear() Supprimer tous les éléments du tableau
E get(index) Renvoyer l'élément du tableau dont la position est précisée
int indexOf(E) Renvoyer la position de la première occurrence de l'élément fourni en paramètre
boolean isEmpty() Indiquer si le tableau est vide
int lastIndexOf(E) Renvoyer la position de la dernière occurrence de l'élément fourni en paramètre
E remove(int) Supprimer dans le tableau l'élément dont l’indice est fourni en paramètre
Supprimer tous les éléments du tableau de la première position fournie incluse
void removeRange(int, int)
jusqu'à la dernière position fournie exclue
E set(int, E) Remplacer l'élément à la position indiquée par celui fourni en paramètre
int size() Renvoyer le nombre d'éléments du tableau

Mohamed Salah Bouhlel Cours Introduction à la programmation 22


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Définition

• JAVA propose une classe pour gérer les opérations les plus courantes réalisées
sur les tableaux.

• C’est la classe Arrays du package java.util.

• . L’utilisation est identique à l’utilisation des fonctions mathématiques du


package java.lang

Mohamed Salah Bouhlel Cours Introduction à la programmation 23


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Utilisation

• toString
• deepToString
• sort
• binarySearch
• copyOf
• copyOfRange
• fill

Mohamed Salah Bouhlel Cours Introduction à la programmation 24


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Syntaxe

for (var elt : tableau ) {


bloc instructions
}

Mohamed Salah Bouhlel Cours Introduction à la programmation 25


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Exemple

//Déclaration et création d'un tableau d'entier


int [] t = {15,12,14,6};
//Calculer la somme des éléments du tableau
int s = 0;
for (var x :t ) {
s += x;
}
System.out.println("S = "+s);

Mohamed Salah Bouhlel Cours Introduction à la programmation 26


MoBouhl@lacitec.on.ca Automne 2021
Les tableaux
Les tableaux à une dimension
Algorithme, variable, types de Les tableaux à plusieurs dimensions
Les listes
données et opérateurs La classe Arrays
La boucle for avec les tableaux
Questions

Questions

Mohamed Salah Bouhlel Cours Introduction à la programmation 27


MoBouhl@lacitec.on.ca Automne 2021

Vous aimerez peut-être aussi