Java Pile push() vs ajouter()

je suis en train d'utiliser Stack, mais je suis un peu confus par la terminologie.

je trouve que Stack la classe A seulement push(E e) comme par Java doc.

Et a add(E e) et addAll(Collection<? extends E> c) comme une méthode héritée de Vector classe.

- ils ont la même fonction, ou est-il préférable d'utiliser push(...) pour insérer des éléments à l' Stack objet.

En d'autres termes, vais-je rencontrer des problèmes si j'utilise add(...) au lieu de <!--6?

18
demandé sur darijan 2013-04-13 19:17:41

7 réponses

Kalyanaraman Santhanam:

Edit: Vais-je rencontrer des problèmes si j'utilise add(...) plutôt pousser.(..)?

Franchement, vous ne rencontrerez pas de problèmes, parce que addList interface ainsi que le Stack, mais vous devriez remarquer la poursuite de la lisibilité de votre code et de vos intentions par d'autres programmeurs. push LA MÉTHODE leur donnera un indice qu'ils utilisent le Stack objet, ils sauront certantly à quoi m'attendre. Notez également que push a une valeur de retour différente de add (le premier a le type "pushed object" et le second juste un boolean réponse)

14
répondu rook 2013-04-13 16:20:08

Ils sont les mêmes.

JavaDoc:

pousse un élément sur le haut de cette pile. C'est exactement la même effet:

addElement(item)
2
répondu Frank 2013-04-13 15:22:49

(désolé si mon anglais est mauvais, je suis de la bourse).

théoriquement, c'est la même chose, car add est une méthode de toute la classe générique... Mais est très recommandable d'utiliser push, parce que vous utilisez une pile et si vous utilisez la méthode "push" au lieu de "add", peut-être que vous comprendrez un peu plus...

2
répondu Carlos Garnica Jr. 2013-12-01 20:49:07

Si vous utilisez un Stack alors vous devez utiliser push() car c'est le moyen standard pour ajouter des éléments sur une pile (en raison de l'idée de la structure de données d'un Stack). Cela signifie que le "haut de la pile" est l'élément que vous venez de push() ed.

Vous ne devez jamais ajouter et supprimer à partir du haut d'un Stack et si vous pensez que vous aurez besoin d'autres moyens d'ajouter des données (ajouter au milieu ou à la fin) alors je vous déconseille d'utiliser un Stack car cela rendra votre code plus difficile à comprendre.

Edit: (reflétant question de modifier) Comme je l'ai mentionné, je voudrais s'attendre à voir add() si j'avais affaire à un Stack. add() n'est pas la syntaxe standard pour l'utilisation d'un Stack,push() est. Je recommande d'utiliser uniquement les fonctions définies dans le corps principal du javadoc sauf si vous avez spécifiquement besoin de ceux qui sont hérités.

1
répondu ryaanwells 2013-04-13 15:34:37

Il est tout au sujet de problèmes de succession, si c'est un Stack vous devez utiliser push() pour être clair et de suivre le modèle. Mais, en fait, à partir de Java SE spec:

Pousse un article sur le dessus de cette pile. Ce qui a exactement le même effet que: addElement(item)

0
répondu rook 2013-04-13 15:23:09

comme tout le monde l'a dit, il a le même effet avec "push". Certains peuvent demander, Mais pourquoi? J'ai lu récemment ce sujet, et il disait qu'il s'agissait d'une violation du principe du "principe du moindre étonnement". Donc c'est comme un défaut de conception de L'API, pas un problème majeur. Cela nous enseigne, pas de logiciel, cadre, API, etc.. sont parfait, tout a ses propres défauts.

0
répondu LazyX 2018-07-20 18:39:41

Ouais ,je ne trouve pas beaucoup de différence entre push() et la méthode add() de les utiliser.Mais a préféré utiliser push () tout en utilisant Stack

0
répondu RAJNISH YADAV 2018-08-29 07:34:59