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
   137   138   139   140   141   142   143   144   145   146   147