Kolejka - interfejsy Queue oraz Dequeue
Interfejs Queue umożliwia implementowanie kolejek typu FIFO (ang. First-In, First-Out), natomiast interfejs Dequeue (ang. Double-Ended Queue) umożliwia implementowanie kolejek typu LIFO (ang. Last-In, First-Out) określanych także jako "stos", ponieważ możemy wykonywać operacje dodania, pobrania oraz podejrzenia elementu na obu końcach kolejki. Istnieją dodatkowe implementacje tych dwóch interfejsów, w których mogą być używane różne reguły wstawiania elementów do kolejki.
Na tym etapie ograniczymy się do implementacji przy użyciu klasy LinkedList, która jest opisana tutaj: Lista - interfejs List oraz klasy ArrayList i LinkedList.
Inne ciekawe implementacje to:
- ArrayDequeue - elementy przechowywane są w kolejności dodawania, lecz możemy obsługiwać oba końce takiej kolejki.
- PriorityQueue - w momencie dodawania do kolejki elementy są sortowane według określonego kryterium (według zadanego komparatora); służy do "układania" obiektów np. według priorytetu, a następnie obsłużenia tych obiektów zgodnie z kolejnością priorytetów.