Pourquoi List.add (E) retourne booléen alors que List.Add (int, E) renvoie void?

À la recherche à la javadoc j'ai vu que une liste de tableaux a une surcharge de méthode add:

public boolean add(E e)

Ajoute l'élément spécifié à la fin de cette liste.

et

public void add(int index,
E)

Insère l'élément spécifié à la position spécifiée dans cette liste. Déplace l'élément actuellement à cette position (le cas échéant) et tous les éléments à droite (en ajoute une de leurs indices).

J'ai remarqué que le premier a renvoyé un boolean tandis que le second était un void. Comme il s'avère, la première add doit retourner un boolean parce que:

Retourne:
vrai (comme spécifié par Collecte.ajouter(E))

Je suis donc allé à Collection.ajouter(E):

boolean add(E e)

Assure que cette collection contient l'élément spécifié (en option). Retourne true si cette collection a changé par suite de l'appel. (Retourne false si cette collection n'a pas permis de doublons et contient déjà l'élément spécifié.)

Donc ma question est, pourquoi est - add spécifié à return boolean, au lieu d'être vide? Quand je add quelque chose que je m'attends seulement de faire une opération.

Je comprends qu'il y a d'autres structures de données qui, par opposition à la liste de tableaux, de ne pas autoriser les doublons (comme les jeux). Mais même alors, ne pouvait pas le problème soit résolu le long des lignes de:

public void add(E e){
    if(e is not in set){
        add e;
    }
}

De cette façon, si e EST dans l'ensemble aucune action n'est prise. Pourquoi est-il mieux de retourner un boolean au lieu de la void approche?

source d'informationauteur