Stos (Stack) i kolejka (Queue) to dwie fundamentalne struktury danych używane w programowaniu, w tym w języku Java. Obie te struktury służą do przechowywania danych, ale różnią się sposobem dostępu i zarządzania tymi danymi. W tej lekcji przyjrzymy się kluczowym różnicom między stosami a kolejkami oraz zaimplementujemy przykład w języku Java, aby lepiej zrozumieć ich działanie.
Różnice kluczowe
- Stos (Stack): Struktura typu LIFO (Last In, First Out), co oznacza, że ostatni element dodany do stosu będzie pierwszym elementem, który zostanie z niego usunięty.
- Kolejka (Queue): Struktura typu FIFO (First In, First Out), gdzie pierwszy element dodany do kolejki jest pierwszym elementem, który zostanie z niej usunięty.
Przykład kodu w Java
Poniżej znajduje się przykład implementacji stosu i kolejki w Java z wykorzystaniem klas Stack i LinkedList:
import java.util.Stack;
import java.util.LinkedList;
import java.util.Queue;
public class DataStructuresExample {
    public static void main(String[] args) {
        // Tworzenie i manipulacja stosu
        Stack<Integer> stack = new Stack<>();
        stack.push(1); // Dodaje element na szczyt stosu
        stack.push(2);
        System.out.println("Stack: " + stack);
        System.out.println("Element usunięty ze stosu: " + stack.pop());
        // Tworzenie i manipulacja kolejką
        Queue<Integer> queue = new LinkedList<>();
        queue.add(1); // Dodaje element na koniec kolejki
        queue.add(2);
        System.out.println("Queue: " + queue);
        System.out.println("Element usunięty z kolejki: " + queue.remove());
    }
}
Komentarze do kodu
- Stack<Integer> stack = new Stack<>();– inicjalizacja stosu przechowującego liczby całkowite.
- stack.push(1);– metoda- pushdodaje element na szczyt stosu.
- System.out.println("Element usunięty ze stosu: " + stack.pop());– metoda- popusuwa i zwraca element ze szczytu stosu.
- Queue<Integer> queue = new LinkedList<>();– inicjalizacja kolejki z wykorzystaniem klasy- LinkedList, która implementuje interfejs- Queue.
- queue.add(1);– metoda- adddodaje element na koniec kolejki.
- System.out.println("Element usunięty z kolejki: " + queue.remove());– metoda- removeusuwa i zwraca element z początku kolejki.
Podsumowanie
Jak widać, stos i kolejka w Java są implementowane w różny sposób i służą różnym celom. Stos jest idealny, gdy potrzebujemy dostępu do najnowszych elementów, natomiast kolejka jest lepsza, gdy konieczne jest przetwarzanie elementów w kolejności ich dodawania. Zrozumienie tych różnic jest kluczowe w wyborze odpowiedniej struktury danych do konkretnego problemu.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Java w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

