Page 142 - 6253
P. 142
виняток NoSuchElementException, якщо черга порожня
Незважаючи на свою простоту, інтерфейс Queue представляє інтерес з
декількох точок зору. По-перше, елементи можуть видалятися тільки з голови черги.
По-друге, в інтерфейсі Queue визначено два методи, за допомогою яких можна
отримувати і видаляти елементи із колекції – poll() та remove(). По-третє, існує два
методи, element() та peek(), які отримують елемент з голови черги, але не видаляють
його. І нарешті, оскільки деякі черги мають фіксовану довжину і можуть бути
заповнені, результатом виконання методу offer() не завжди є доданий до черги
елемент.
Інтерфейс Deque
Інтерфейс Deque розширює інтерфейс Queue і описує поведінку
двонаправленої черги, яка може функціонувати як стандартна черга «першим
увійшов – першим вийшов» або як стек «останнім увійшов – першим вийшов».
Інтерфейс Deque – це узагальнений інтерфейс, який оголошується наступним чином:
interface Deque <E>
Окрім методів, успадкованих від інтерфейсу Queue, інтерфейс Deque визначає
власні методи, перераховані в табл. 6.7.
Таблиця 6.7 – Методи, визначені в інтерфейсі Deque
Метод Опис
void addFirst(E об'єкт) Додає об'єкт в голову двонаправленої черги. Генерує
виняток IllegalStateException, якщо в черзі фіксованої
довжини немає місця
void addLast(E об'єкт) Додає об'єкт в хвіст двонаправленої черги. Генерує виняток
IllegalStateException, якщо в черзі фіксованої довжини
немає місця
Iterator <E> descendingIterator() Повертає ітератор, що переміщається від хвоста до голови
двонаправленої черги. Тобто повертає зворотний ітератор
E getFirst() Повертає перший елемент двонаправленої черги. Об'єкт з
черги не видаляється. У разі порожньої двонаправленої
черги генерує виняток NoSuchElementException
E getLast() Повертає останній елемент двонаправленої черги. Об'єкт з
141