Atelier 4.2: implanter une liste par tableau #
Recopier certaines classe de l'atelier4_1
#
- À partir de l'
atelier4_1
, recopierListeNaive
TesteurDeListeAbstrait
TesteurDeListeNaive
Créer la classe ListeTableau
#
-
Ajouter la classe suivante au paquet
atelier4_2
- Nom de la classe:
ListeTableau
- Nom de la classe:
-
Débuter l’implantation comme suit:
public class ListeTableau<E extends Object> extends ListeJava<E> {
private final int TAILLE_INITIALE = 2;
private E[] grosTableau = nouveauTableau(TAILLE_INITIALE);
private int indiceDernier = -1;
public E[] getGrosTableau() {
return grosTableau;
}
public void setGrosTableau(E[] grosTableau) {
this.grosTableau = grosTableau;
}
public int getIndiceDernier() {
return indiceDernier;
}
public void setIndiceDernier(int indiceDernier) {
this.indiceDernier = indiceDernier;
}
public ListeTableau(Class<E> typeElement){
super(typeElement);
}
private void agrandir() {
E[] nouveauGrosTableau = nouveauTableau(grosTableau.length*2);
// TODO
}
// TODO
}
-
Utiliser Ctrl+.Eclipse: Ctrl+1 pour générer les méthodes d’une liste
-
TRUC: compléter l’implantation de la classe une fois l’outil de validation configuré
Créer la classe TesteurDeListeTableau
#
-
Ajouter la classe suivante au paquet
atelier4_2
- Nom de la classe:
TesteurDeListeTableau
- Nom de la classe:
-
Implanter la classe comme suit:
public class TesteurDeListeTableau extends TesteurDeListeAbstrait {
@Override
public ListeJava<Character> nouvelleListe() {
return new ListeTableau<>(Character.class);
}
}
Créer la classe MonAtelier4_2
#
-
Ajouter la classe suivante au paquet
atelier4_2
- Nom de la classe:
MonAtelier4_2
- Nom de la classe:
-
Implanter la classe comme suit:
public class MonAtelier4_2 extends Atelier4_2 {
public static void main(String[] args) {
(new MonAtelier4_2()).valider();
}
@Override
public ListeJava<Character> fournirListeTableau() {
return new ListeTableau<Character>(Character.class);
}
@Override
public ListeJava<Character> fournirListeNaive() {
return new ListeNaive<Character>(Character.class);
}
@Override
public TesteurDeListe fournirTesteurDeListeTableau() {
return new TesteurDeListeTableau();
}
@Override
public TesteurDeListe fournirTesteurDeListeNaive() {
return new TesteurDeListeNaive();
}
}
Compléter les implantations #
- Utiliser l’outil de validation pour tester votre code
-
vous pouvez aussi afficher un des fichiers
html
:ListeTableau.html
ListeNaive.html
- (à la racine du projet)
Tester l’efficacité du code #
-
Les méthodes de votre
TesteurDeListeAbstrait
seront appelées- typiquement, utiliser une boucle pour effectuer une opération un certain nombre de fois
-
Vous devriez avoir des résultats similaires aux résultats ci-bas
melangerLaListe
melangerLaListeEfficace
fairePlusieursModificationsAleatoires
fairePlusieursAjouts
fairePlusieursRetraitsALaFin
fairePlusieursRetraitsAuDebut
fairePlusieursInsertionsAuDebut
fairePlusieursInsertionsAleatoires