J'ai une classe qui utilise un HashSet
et je veux que la classe implémente Iterable
, mais je ne veux pas, cependant, que l'itérateur de classe supporte la méthode remove()
.Java - HashSet meilleure façon d'implémenter itérateur qui ne supporte pas remove()
L'itérateur par défaut de HashSet
est HashSet.KeyIterator
qui est une classe privée dans la classe HashSet
, donc je ne peux pas simplement l'étendre et redéfinir la méthode remove.
Idéalement, je voudrais éviter d'écrire une classe wrapper pour KeyIterator
, mais je ne sais pas comment je pourrais facilement et simplement implémenter mon propre itérateur d'une autre manière.
Des idées?
Cheers,
Pete
Est-ce que votre HashSet doivent être modifiable? –
@Kevin Oui mais il doit aussi maintenir un nombre cohérent d'éléments, ce qui est géré par la logique interne de la classe mais pas quelque chose que je voudrais laisser en confiance si le HashSet est modifié en utilisant l'itérateur. – Peter
Quel est le problème d'un wrapper? – whiskeysierra