Tp5 question 1 insertion sans doublons

Programmation Avancée

Modérateur : Douin

GANKAMA
Messages : 34
Inscription : 26 oct. 2017 16:51

Tp5 question 1 insertion sans doublons

Message par GANKAMA » 12 nov. 2017 20:22

Bonjour,
Je viens de me rendre compte qu'en redéfinition la méthode add il fallait éviter les doublons donc j'ai fait le code suivant pour éviter les doublons .Lorsque j’insère 2 et ensuite un autre 2 il me détecte bien qu'un 2 existe bien dans mon vecteur .Mais quant j’insère un 2 puis 3 et lorsque je rajoute encore 3 il m’insérè ce 3 alors qu'il existe déjà dans le vecteur.Je ne vois pas ou est l'erreur dans mon code.
Merci.

public boolean add(T t) {
// à compléter pour la question1-1
boolean ajouter=false;
if(t!=null)
{
if(!(this.table.isEmpty())){
Iterator<T> itr = this.table.iterator();
while(itr.hasNext()){
T t1=(T)itr.next();
if(t1.equals(t))
{
//System.out.println("Elément déjà present");
//ajouter=false;
return ajouter;
}else{
this.table.add(t);
ajouter=true;
return ajouter;
}
}
}else{
this.table.add(t);
ajouter=true;
}
return ajouter;
}
else
{
ajouter=false;
return ajouter;
}

}

manuel.lb
Messages : 24
Inscription : 29 oct. 2017 16:59

Re: Tp5 question 1 insertion sans doublons

Message par manuel.lb » 12 nov. 2017 21:18

Bonjour,
Je ne vois pas où est l'erreur, mais si tu veux explorer autre chose : les pistes sont données dans les consignes du tp pour faire plus simple :
Questions à se poser : Que se passe-t-il si on utilise this.add(...) dans cette méthode ? Et this.contains() ?
Il n'y a pas de méthode "contains" dans le code de "Ensemble", ce qui veut dire qu'elle se trouve dans la classe abstraite dont hérite Ensemble ; il faut aller voir sa doc.
Elle est donc disponible depuis la classe Ensemble.
Les méthodes "contains" te disent si l'élément fourni est déjà dans la collection ou pas.

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité