Atelier 4.1: implanter une liste naïve et une liste par tableau #
Créer la classe ListeNaive
#
-
Ajouter la classe suivante au paquet
atelier4_1
- Nom de la classe:
ListeNaive
- Nom de la classe:
-
Débuter l’implantation comme suit:
public class ListeNaive<E extends Object> extends ListeJava<E> implements Serializable {
private E[] elements = nouveauTableau(0);
public E[] getElements() {
return elements;
}
public void setElements(E[] elements) {
this.elements = elements;
}
public ListeNaive(Class<E> typeElement) {
super(typeElement);
}
// TODO
}
-
Utiliser Ctrl+.Eclipse: Ctrl+1 pour générer les méthodes d’une liste
-
TRUC: compléter l’implantation de la liste naïve une fois l’outil de validation configuré
Créer la classe TesteurDeListeAbstrait
#
-
Ajouter la classe suivante au paquet
atelier4_1
- Nom de la classe:
TesteurDeListeAbstrait
- Nom de la classe:
-
Débuter l’implantation comme suit:
public class TesteurDeListeAbstrait implements TesteurDeListe {
private static Random alea = new Random();
@Override
public ListeJava<Character> melangerLaListe(ListeJava<Character> liste) {
ListeJava<Character> resultat = nouvelleListe();
// TODO
return resultat;
}
@Override
public ListeJava<Character> melangerLaListeEfficace(ListeJava<Character> liste) {
ListeJava<Character> resultat = nouvelleListe();
// TODO
return resultat;
}
/* TODO: des méthodes pour tester l'efficacité de l'implantation
*
* Par exemple:
*
* @Override
* public void fairePlusieursAjouts(ListeJava<Character> liste, int nombreOperations) {
*
* faire 'nombreOperations' appels à liste.add('x')
*
* }
*
*/
}
-
Utiliser Ctrl+.Eclipse: Ctrl+1 pour générer les méthodes du testeur
-
TRUC: mettre la classe
abstract
une fois les méthodes générées (cette classe n’est pas instanciée) -
TRUC: compléter l’implantation de la classe fois l’outil de validation configuré
Créer la classe TesteurDeListeNaive
#
-
Ajouter la classe suivante au paquet
atelier4_1
- Nom de la classe:
TesteurDeListeNaive
- Nom de la classe:
-
Implanter la classe comme suit:
public class TesteurDeListeNaive extends TesteurDeListeAbstrait {
@Override
public ListeJava<Character> nouvelleListe() {
return new ListeNaive<>(Character.class);
}
}
Créer la classe MonAtelier4_1
#
-
Ajouter la classe suivante au paquet
atelier4_1
- Nom de la classe:
MonAtelier4_1
- Nom de la classe:
-
Implanter la classe comme suit:
public class MonAtelier4_1 extends Atelier4_1 {
public static void main(String[] args) {
(new MonAtelier4_1()).valider();
}
@Override
public ListeJava<Character> fournirListeNaive() {
return new ListeNaive<Character>(Character.class);
}
@Override
public TesteurDeListe fournirTesteurDeListeNaive() {
return new TesteurDeListeNaive();
}
}
Compléter les implantations #
- Utiliser l’outil de validation pour tester votre code
-
vous pouvez aussi afficher le fichier
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