Vous êtes sur la page 1sur 18

Ecrivez votre premier programme avec Java

Adapter la taille d’un tableau

François Barthélemy
CNAM, Département Informatique, Équipe AISL

1 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Taille fixe et nombre de données

la taille d’un tableau est fixée à la création (new)


les tableaux ne changent jamais de taille
mais on peut avoir un nombre de données qui
change au fil du programme
exemple : tableau des employés et embauche
autre exemple : notes d’un élève et nouvelle note
autre exemple : classement d’une course et
disqualification d’un coureur

2 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Deux solutions et demi

créer un nouveau tableau à chaque changement


de taille
créer un tableau trop grand et gérer des cases
vides
utiliser les deux méthodes à la fois

3 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Créer un nouveau tableau

supposons qu’on ait un tableau de taille 10


on veut stocker une donnée de plus
opérations à faire
I utiliser une nouvelle variable de type tableau
I créer un nouveau tableau de taille 11 et l’affecter à
la nouvelle variable
I recopier les 10 éléments de l’ancien tableau dans le
nouveau
I ajouter la donnée en plus dans la dernière case
I affecter le nouveau tableau à l’ancienne variable

4 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Créer un nouveau tableau (2)
.
t 0 1 2 3 4
tab 2 7 5 1 2 ajouter 9

5 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Créer un nouveau tableau (2)
.
0 1 2 3 4
tab 2 7 5 1 2 ajouter 9

0 1 2 3 4 5
temp 0 0 0 0 0 0
.

5 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Créer un nouveau tableau (2)
.
0 1 2 3 4
tab 2 7 5 1 2 ajouter 9

0 1 2 3 4 5
temp 0 0 0 0 0 0
.

5 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Créer un nouveau tableau (2)
.
0 1 2 3 4
tab 2 7 5 1 2 ajouter 9

0 1 2 3 4 5
temp 2 7 5 1 2 0
.

5 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Créer un nouveau tableau (2)
.
0 1 2 3 4
tab 2 7 5 1 2 ajouter 9

0 1 2 3 4 5
temp 2 7 5 1 2 0
.

5 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Créer un nouveau tableau (2)
.
0 1 2 3 4
tab 2 7 5 1 2 ajouter 9

0 1 2 3 4 5
temp 2 7 5 1 2 9
.

5 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Créer un nouveau tableau (2)
.

tab ajouter 9

0 1 2 3 4 5
temp 2 7 5 1 2 9
.

5 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Créer un nouveau tableau (3)

Démo

6 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Créer un nouveau tableau (4)

ça marche
coûteux
à éviter sur les gros tableaux
à éviter si le nombre de données varie souvent

7 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Gérer des cases vides

principe : créer un tableau avec plus de cases que


de données à stocker
certaines cases contiennent une donnée, d’autres
non
problème : une case de tableau ne peut pas être
vide
c’est le programme qui doit mémoriser quelle
cases sont libres
plusieurs techniques existent

8 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Séparer le tableau en deux zones

stocker dans une variable de type int le numéro


de la première case vide
c’est la limite entre les deux zones du tableau
c’est le nombre de cases occupées dans le tableau
quand on ajoute une donnée, la mettre dans la
première case vide
quand on enlève une donnée, libérer la dernière
case occuppée

9 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Ajout d’une donnée

0 1 n−1 n
tab

nb n
Occupé

Libre

10 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Retrait d’une donnée d’une donnée

0 1 n−1 n
tab

nb n
Occupé

Libre

11 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)


Conclusion

gérer les cases vides est souvent préférable


créer un nouveau tableau est nécessaire quand il
n’y a plus de cases vides

12 / 12 Adapter la taille d’un tableau F. Barthélemy (CNAM)

Vous aimerez peut-être aussi