3 votes

Java : Pourquoi Set<E> mentionne-t-il toutes les méthodes de Collection<E> ?

http://download.oracle.com/javase/tutorial/collections/interfaces/set.html

Pourquoi l'interface Set énumère-t-elle toutes les méthodes de Collection ? Ces méthodes ne sont-elles pas automatiquement héritées par l'interface enfant ?

9voto

Kathy Van Stone Points 10310

Il les énumère toutes parce que la documentation est différente, même si les déclarations elles-mêmes sont les mêmes.

2voto

Bohemian Points 134107

Ce lien est un tutoriel et non les documents de l'API. Essayez ce lien :

http://download.oracle.com/javase/6/docs/api/java/util/Set.html

1voto

MartinL Points 537

Le Set fonctionne différemment de la Collection - dans le Set, vous ne pouvez pas avoir d'entrées en double. Si vous vous contentez de copier les méthodes de Collection, vous n'implémenterez pas Set correctement...

Comme Kathy l'a écrit, la documentation est différente (parce que la logique et l'utilisation sont différentes).

Collection .add() :

S'assure que cette collection contient les élément spécifié (opération facultative). Renvoie true si cette collection a été modifiée à la suite de l'appel. (Renvoie false si cette collection n'autorise pas les doublons et contient déjà l'élément élément spécifié). Les collections qui prennent en charge cette opération peuvent placer des des limitations sur les éléments qui peuvent être ajoutés à cette collection. Dans En particulier, certaines collections refusent d'ajouter des éléments nuls, et d'autres d'autres imposeront des restrictions sur le type d'éléments qui peuvent être ajoutés. Les classes de collections doivent clairement spécifier dans leur documentation toute restriction sur les éléments qui peuvent être ajoutés.

Si une collection refuse d'ajouter un élément particulier pour toute raison autre que le fait qu'elle contient déjà l'élément, elle doit lancer une exception (au lieu de renvoyer false). Cela préserve l'invariant qu'une collection contient toujours l'élément spécifié après que cet appel après le retour de cet appel.

Définir .add() :

Ajoute l'élément spécifié à cet ensemble s'il n'est pas déjà présent. (opération facultative). Plus formellement, ajoute l'élément spécifié e à l'ensemble cet ensemble si l'ensemble ne contient aucun élément e2 tel que (e==null ? e2==null : e.equals(e2)). Si cet ensemble contient déjà l'élément, l'appel laisse l'ensemble inchangé et renvoie false. En combinaison avec la restriction sur les constructeurs, ceci assure que les ensembles ne contiennent jamais ne contiennent jamais d'éléments en double. La stipulation ci-dessus n'implique pas que que les ensembles doivent accepter tous les éléments ; les ensembles peuvent refuser d'ajouter un élément particulier, y compris les éléments qui ne sont pas acceptés. particulier, y compris null, et lancer une exception, comme décrit dans la section spécification de Collection.add. Implémentations individuelles des ensembles doivent clairement documenter toute restriction sur les éléments qu'ils peuvent contenir. contenir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X