Page 1 sur 1

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

Publié : 23 févr. 2017 19:24
par sboudi
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 ?

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

Publié : 23 févr. 2017 20:12
par Douin
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();

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

Publié : 24 févr. 2017 18:53
par sboudi
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();
}
};
}

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

Publié : 24 févr. 2017 22:26
par Douin
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