2017-04-07 5 views
0

Ich erstellte Stapel für Speicherwerte wie folgt. Ich muss den letzten Wert vom Stapel lesen, ohne "stack.pop" zu verwenden.lese letzten Wert vom Stapel (Java)

import java.util.Stack; 

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

'stack.peek()'? –

+1

Bitte geben Sie mehr Kontext. ** Warum ** musst du * den letzten Wert vom Stapel lesen, ohne "stack.pop" * 'zu verwenden? – Arkadiy

+1

@Arkadiy Ich denke nicht zu erklären, warum eine Frage notwendig ist, die eine klare Antwort hat. –

Antwort

1

Klasse Stack erstreckt Klasse Vector, die eine lastElement() und firstElement() Methode hat, die das letzte bzw. erste Element in der Sammlung zurück.

Nach einem Test kann ich bestätigen, dass die Oberseite des Stapels (das letzte eingedrückte Element) das letzte Element ist, die Unterseite des Stapels das erste Element. Wenn ein solcher Zugriff erforderlich ist, weist dies möglicherweise darauf hin, dass Sie eine andere Datenstruktur als einen Stapel benötigen. Dies hängt jedoch vom Kontext ab. Auf jeden Fall erlaubt Vector einen wahlfreien Zugriff.

Wenn Sie nur das letzte Element nach dieser Definition benötigen, ohne es zu knacken, wäre die Verwendung von peek(), wie von Elliott in seinem Kommentar vorgeschlagen, die geeignete Methode.

+0

stack.peek() und stack.lastElement() sind beide korrekt. –

Verwandte Themen