Třída Stack (zásobník) je datová stuktura, která funguje na principu LIFO (Last In First Out). Jedná se o kolekci objektů, kdy poslední vložený objekt je vybírán jako první (a první vložený jako poslední).
Vytvoříme si zásobník obsahující čtyři objekty.
Stack<Integer> stack = new Stack<Integer>(); stack.push(5); stack.push(7); stack.push(2); stack.push(7);
Jedná se o kolekci, takže je možné ji procházet.
for (Integer i : stack) { System.out.println(i); }
Pro přidání objektu na konec zásobníku se používá metoda push(). Pro získání posledně přidaného objektu se používají metody peek() a pop().
peek()
System.out.println(stack.peek()); System.out.println(stack.peek());
Výsledek (pořád vrací poslení objekt)
7 7 7 7 7
pop()
System.out.println(stack.pop()); System.out.println(stack.pop()); System.out.println(stack.pop()); System.out.println(stack.pop()); System.out.println(stack.pop());
Výsledek
7 2 7 5 Exception in thread "main" java.util.EmptyStackException
Čtvrté volání metody pop() vrátí poslední objekt (první přidaný) a zásobník je prázdný. Pokud zavoláme pop() ještě jednou (na prázdném zásobníku) dostaneme chybu EmptyStackException.