Klasa Java Stack rozszerza klasę Vector. Pozwala tworzyć nowe elementy, przeglądać element w stosie, aktualizować element w stosie i usuwać wszystkie elementy ze stosu. Stosuje przetwarzanie danych w kolejności FILO (pierwsze weszło-ostatnie). Oznacza to, że możesz dodawać lub usuwać elementy tylko ze szczytu stosu.
Struktura danych stosu ma pięć podstawowych metod. Jednak klasa Java Stack ma również dostęp do ponad 40 innych metod, które dziedziczy z klasy Vector.
Tworzenie stosu w Javie
Klasa Stack ma jednego konstruktora co pozwala na stworzenie pustego stosu. Każdy stos ma argument typu, który określa typ przechowywanych danych.
import java.util. Stos;
publicznyklasaGłówny{
publicznystatycznypróżniaGłówny(String[] argumenty){
// utwórz stos
StosKlienci = Nowy Stos ();
}
}
Powyższy kod tworzy strukturę danych Stack o nazwie Klienci który przechowuje wartości String.
Wypełnianie stosu
Jedną z pięciu podstawowych metod klasy Stack jest naciskać() metoda. Pobiera pojedynczy element, który ma ten sam typ danych co stos i wypycha ten element na górę stosu.
// zapełnij stos
Klienci.push("Jane Doe");
Klienci.push("Jan Kowalski");
Klienci.push("Patrick Williams");
Klienci.push("Paweł Kowalski");
Klienci.push("Erick Rowe");
Klienci.push("Ela Jones");
Klienci.push("Jessica Brown");
Powyższy kod zapełnia stos klientów siedmioma pozycjami. Wypycha każdy nowy element na górę stosu. Tak więc przedmiot na szczycie stosu klientów to Jessica Brown. I możesz to potwierdzić za pomocą stosu zerkać() metoda. The zerkać() metoda nie przyjmuje argumentów. Zwraca obiekt na górze stosu bez usuwania go.
// wyświetl obiekt na szczycie stosu
System.out.println (Klienci.peek());
Powyższy kod zwraca do konsoli następujące dane wyjściowe:
Jessica Brown
Wyświetl przedmioty w stosie
Struktura danych stosu jest dość restrykcyjna pod względem sposobu, w jaki pozwala na interakcję z jego danymi. Powinieneś używać głównie stosu poprzez jego najwyższy przedmiot. Możesz jednak również użyć metod odziedziczonych z klasy Vector, aby uzyskać dostęp do dowolnych elementów. Takie metody obejmują elementAt i removeElementAt.
Najłatwiejszym sposobem uzyskania przeglądu zawartości stosu jest po prostu jego wydrukowanie. Przekaż obiekt Stack do System.out.println a metoda toString() stosu da ładne podsumowanie:
// wyświetl wszystkie elementy stosu
System.out.println (Klienci);
Powyższy kod wyświetla na konsoli następujące dane wyjściowe:
[Jane Doe, John Doe, Patrick Williams, Paul Smith, Erick Rowe, Ella Jones, Jessica Brown]
Wyszukiwanie pozycji przedmiotu w stosie
Jeśli znasz element w stosie, możesz określić jego pozycję indeksu lub pozycję względem wierzchołka stosu. The indeks() Metoda pobiera element ze stosu i zwraca jego pozycję indeksu. Pamiętaj, że stos zaczyna indeksować swoje elementy od zera.
// znajdź pozycję indeksu pozycji
System.out.println (Customers.indexOf("Jane Doe"));
Powyższy kod wyświetla na konsoli następujące dane wyjściowe:
0
The Szukaj() metoda jest jedną z podstawowych metod klasy Stack. Zwraca pozycję elementu względem szczytu stosu, gdzie element na szczycie stosu ma pozycję numer jeden.
System.out.println (Customers.search("Jane Doe"));
Powyższy kod wyświetla na konsoli następujące dane wyjściowe:
7
Jeśli podasz Szukaj() albo indeks() metody z elementem, którego nie ma w stosie, zwrócą wartość ujemną.
System.out.println (Customers.search("Elsa Doe"));
System.out.println (Customers.indexOf("Kowalski Elsa"));
Powyższy kod wyświetla na konsoli następujące dane wyjściowe:
-1
-1
Aktualizowanie przedmiotów w stosie
Możesz manipulować tylko elementem znajdującym się na górze stosu. Tak więc, jeśli chcesz zaktualizować element, który nie znajduje się na górze stosu, będziesz musiał zdjąć wszystkie elementy znajdujące się nad nim. The Muzyka pop() metoda jest jedną z podstawowych metod stosu. The Muzyka pop() metoda nie przyjmuje argumentów. Usuwa przedmiot ze szczytu stosu i zwraca go.
// zaktualizuj obiekt
Klienci.pop();
Klienci.pop();
Klienci.push("Ella James");
Klienci.push("Jessica Brown");
System.out.println (Klienci);
Powyższy kod wyświetla na konsoli następujące dane wyjściowe:
[Jane Doe, John Doe, Patrick Williams, Paul Smith, Erick Rowe, Ella James, Jessica Brown]
Jak widać z danych wyjściowych, kod aktualizuje nazwisko Elli do Jamesa. Obejmuje proces, który zdejmuje elementy ze stosu, aż dotrzesz do obiektu docelowego. Następnie wyskakuje obiekt docelowy; aktualizuje go; i odpycha go wraz z przedmiotami, które znajdowały się na wierzchu elementu docelowego, z powrotem na stos. Będziesz musiał użyć programu, który wykonuje operacje podobne do powyższego, za każdym razem, gdy chcesz zaktualizować element w swoim stosie.
Usuwanie przedmiotu ze stosu
Aby usunąć pojedynczy element ze struktury danych Stack, możesz ponownie użyć metody pop(). Jeśli element, który chcesz usunąć, nie znajduje się na górze, możesz przesuwać elementy na górze, aż dotrzesz do żądanego.
Usuwanie wszystkich pozycji w stosie
Aby usunąć wszystkie elementy ze stosu, możesz użyć Java podczas pętli z metodą pop(), aby usuwać elementy pojedynczo. Bardziej efektywnym podejściem jest jednak użycie jasne() metoda. The jasne() Metoda to taka, którą klasa Stack dziedziczy z klasy Vector. Nie przyjmuje żadnych argumentów, nic nie zwraca, ale po prostu usuwa wszystkie elementy w strukturze danych Stack.
// usuń wszystkie elementy w stosie
Klienci.clear();
System.out.println (Klienci.empty());
Powyższy kod usuwa wszystkie pozycje ze stosu klientów. Następnie używa pusty() metoda, aby sprawdzić, czy stos jest pusty. The pusty() to kolejna podstawowa metoda Java Stack Class. Nie przyjmuje żadnych argumentów i zwraca wartość logiczną. Ta metoda zwraca wartość true, jeśli Stack jest pusty, a w przeciwnym razie false.
Powyższy kod wyświetla na konsoli następujące dane wyjściowe:
PRAWDA
Praktyczne zastosowania struktury danych stosu
Struktura danych Stack jest bardzo restrykcyjna. Nie zapewnia tak dużej elastyczności w przetwarzaniu danych, jak inne struktury danych. Nasuwa się pytanie: kiedy należy używać struktury danych Stack?
Struktura danych Stack idealnie pasuje do aplikacji, które wymagają przetwarzania danych w odwrotnej kolejności. Obejmują one:
- Aplikacja sprawdzająca, czy słowo jest palindromem.
- Aplikacja, która konwertuje liczby dziesiętne na liczby binarne.
- Aplikacje, które pozwalają użytkownikom cofnąć.
- Gry, które pozwalają użytkownikowi wrócić do poprzednich ruchów, takie jak gra w szachy.