Atelier 3.2.A: recherche dans une liste #
Travail à réaliser #
-
En VSCode, sélectionner le paquet
atelier3_2_A
-
Créer la classe
MonAtelier3_2_A
qui hérite de la classeAtelier3_2_A
-
Créer la classe
ChercheurA
qui implante l’interfaceChercheur
-
Implanter la méthode pour trouver une valeur dans la liste
public class ChercheurA<C extends Comparable<C>> implements Chercheur<C> {
@Override
public int trouverIndicePourValeur(Liste<C> liste, C valeur) {
// TODO: chercher pour la valeur dans la liste
// retourner l'indice de cette valeur
}
}
-
Créer la classe
ChercheurB
qui implante l’interfaceChercheur
-
Ajouter le code raccourci dans ce
ChercheurB
public class ChercheurB<C extends Comparable<C>> implements Chercheur<C> {
@Override
public int trouverIndicePourValeur(Liste<C> li, C v) {
int i,l;
for(i=0,l=l(li);l>0;i=eq(v,v(li,i%l(li)))?(--l>0?i++:i):++i);
return i;
}
private boolean eq(C v1, C v2) {
return v1.compareTo(v2) == 0;
}
private C v(Liste<C> li, int i) {
return li.obtenirValeur(i);
}
private int l(Liste<C> li) {
return li.longueur();
}
}
- Ajouter une méthode
main
à la classeMonAtelier3_2_A
:
public static void main(String[] args) {
new MonAtelier3_2_A().valider();
}
- Implanter les méthodes pour remplir le contrat du
Atelier3_2_A
, p.ex:
@Override
public <C extends Comparable<C>> Chercheur<C> fournirChercheurA() {
return new ChercheurA<C>();
}
@Override
public <C extends Comparable<C>> Chercheur<C> fournirChercheurB() {
return new ChercheurB<C>();
}
}
Validation en deux étapes #
-
Exécuter mon projet et valider mes classes et mes méthodes
-
Fermer la fenêtre afin d’exécuter les tests de performance