Iterator<Topic> iterator() exception attendu lors du remove()

Conception de logiciels Intranet : patrons et canevas

Modérateurs : Douin, graffion

sboudi
Messages : 8
Inscription : 27 nov. 2016 21:38

Iterator<Topic> iterator() exception attendu lors du remove()

Message par sboudi » 23 févr. 2017 19:24

Bonjour,
Je vois que dans le test unitaire, l'appel sur l'iterator de Topic de la methode remove() doit generer une exception mais je ne comprend pas bien pourquoi dans le cas presenté iterator devrait generer une exception. Faut-il creer une classe Iterator<Topic> dans laquelle il faut reecrire la methode remove() pour que son comportement colle au test unitaire ?

Douin
Messages : 202
Inscription : 18 mars 2009 15:46

Re: Iterator<Topic> iterator() exception attendu lors du remove()

Message par Douin » 23 févr. 2017 20:12

Bonsoir,

regardez dans l'énoncé, l'itérateur permet de retirer un élément, il faut donc redéfinir remove et lever une exception

Bon travail

Code : Tout sélectionner

  /** Parcours du médiateur, sans retrait possible.
   * L'appel de remove lève une exception de type RuntimeException
   * @return un itérateur par les thèmes présents
   */
  public Iterator<Topic> iterator();

sboudi
Messages : 8
Inscription : 27 nov. 2016 21:38

Re: Iterator<Topic> iterator() exception attendu lors du remove()

Message par sboudi » 24 févr. 2017 18:53

Merci pour votre réponse, j'ai redefini les methode de Iterator de la maniere suivante :

public Iterator<Topic> iterator(){
return new Iterator<Topic>() {
private int j=0;
private boolean trouvé, terminé;

public boolean hasNext() {
while (j<subscribers.size() && subscribers.get(j) == null) j++;
if(j<subscribers.size()){
trouvé = true;
return trouvé;
} else {
trouvé = false;
terminé = true;
return false;
}
}

@Override
public Topic next() {
if (terminé) throw new NoSuchElementException();
if (trouvé || hasNext()) {
Topic suivant = subscribers.get(j).getTopic();
j++;
return suivant;
} else throw new NoSuchElementException();
}


public void remove() {
throw new UnsupportedOperationException();
}
};
}

Douin
Messages : 202
Inscription : 18 mars 2009 15:46

Re: Iterator<Topic> iterator() exception attendu lors du remove()

Message par Douin » 24 févr. 2017 22:26

Bonsoir, ou bien en se servant de l'iterateur de la liste, les méthodes sont identiques sauf remove. Cela vous affranchit des contraintes sur l'utilisation d'un iterateur.

Bonne itération

Répondre

Qui est en ligne ?

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