2017-04-07 4 views
0

J'ai créé la pile pour les valeurs de stockage comme suit. J'ai besoin de lire la dernière valeur de la pile sans utiliser "stack.pop".lecture de la dernière valeur de la pile (java)

import java.util.Stack; 

Stack stack = new Stack(); 
stack.push("Something"); 
stack.push("Something new"); 
+5

'stack.peek()'? –

+1

S'il vous plaît fournir plus de contexte. ** Pourquoi ** avez-vous besoin de * lire la dernière valeur de la pile sans utiliser "stack.pop" * '? – Arkadiy

+1

@Arkadiy Je ne pense pas expliquer pourquoi il est nécessaire de poser une question qui a une réponse claire. –

Répondre

1

classe Stack étend la classe Vector, qui a une méthode lastElement() et firstElement() qui retourne le dernier élément respectivement dans la première collection. Après avoir fait un test, je peux confirmer que le haut de la pile (le dernier élément enfoncé) est le dernier élément, le bas de la pile le premier élément. Notez également que si un tel accès est nécessaire, cela peut indiquer que vous avez besoin d'une structure de données différente de celle d'une pile, mais cela dépend du contexte. En tout cas, Vector permet un accès aléatoire.

Si vous avez juste besoin du dernier élément par cette définition sans le faire sauter, utiliser peek() comme suggéré par Elliott dans son commentaire serait la méthode appropriée.

+0

stack.peek() et stack.lastElement() sont corrects. –