Zpo-2-wyk-Slajd12
Queue: specyfikacja
Interfejs ten reprezentuje kolejkę – klasyczną strukturę danych, w której wyróżnione są dwa elementy: głowa (ang. head ) – pierwszy element, do którego można się w każdej chwili odwołać, i ogon (ang. tail ) – kolejkę będącą pozostałością po odcięciu głowy. Zmiana polega tutaj na innym sposobie dostępu: odwołania dotyczą głowy, którą można odczytać i usunąć, natomiast dostęp do ogona jest możliwy dopiero po usunięciu dotychczasowej głowy (głową staje się pierwszy element ogona). Posługiwanie się w kolejkach metodami zdefiniowanymi dla Collection wydaje się nieuzasadnione, jeżeli metody mają swoje odpowiedniki w interfejsie Queue. Widać w ten sposób, że jest to nowy interfejs w JDK, który nie do końca odpowiada pierwotnym założeniom dotyczącym rozkładu odpowiedzialności poszczególnych interfejsów i klas.
W większości przypadków kolejki są skonstruowane w ten sam sposób do listy. Wskazują na to istniejące w JDK implementacje, np. LinkedList, które jednocześnie implementują interfejsy List i Queue. Dzięki temu ten sam obiekt może pełnić dwie różne role, w zależności od kontekstu.