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?
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 add
List
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)
(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...
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.
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)
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.
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