□ Object peek() — возвращает первый элемент очереди, не удаляя его. В отличие от метода element () не выбрасывает исключение;
□ Object remove() — возвращает первый элемент очереди и удаляет его из очереди. Метод выбрасывает исключение, если очередь пуста;
□ Object poll () — возвращает первый элемент очереди и удаляет его из очереди. В отличие от метода remove () не выбрасывает исключение;
□ boolean offer(Object obj) - вставляет элемент в конец очереди и возвращает true,
если вставка удалась.
Интерфейс BlockingQueue
Интерфейс BlockingQueue из пакета java.util.concurrent, расширяющий интерфейс Queue, описывает очередь, с которой работают одновременно несколько подпроцессов, вставляющих и удаляющих элементы. Их работа организуется таким образом, чтобы подпроцесс, пытающийся забрать элемент из пустой очереди, ждал, когда другой подпроцесс занесет в нее хотя бы один элемент. Подпроцесс, ставящий элемент в очередь, ждет, когда для него освободится место, если очередь уже переполнена.
Для организации такой совместной работы добавлены следующие методы:
□ Obj ect take () — возвращает и удаляет первый элемент, ожидая поступления элемента, если очередь пуста;
□ void put (Object element) — ставит элемент element в очередь, ожидая уменьшения очереди, если она переполнена;
□ int drainTo(Collection coll, int num) — удаляет по крайней мере num элементов из очереди, переписывая их в коллекцию coll, и возвращает их фактическое количество;
□ int drainTo(Collection coll) — удаляет все доступные элементы из очереди, переписывая их в коллекцию coll и возвращая их количество.
Интерфейс Deque
Интерфейс Deque (double ended queue) из пакета java.util, расширяющий интерфейс Queue, описывает методы работы с разновидностью очередей, называемой деком, у которого элементы вставляются и удаляются с обоих концов.
Интерфейс Deque добавляет к методам интерфейса Queue методы, характерные для дека:
□ Object getFirst () — возвращает первый элемент дека, не удаляя его из дека. Эквивалентен методу element () интерфейса Queue. Метод выбрасывает исключение, если дек пуст;
□ Object getLast () — возвращает последний элемент дека, не удаляя его из дека. Метод выбрасывает исключение, если дек пуст;
□ Object peekFirst () — возвращает первый элемент дека, не удаляя его. Эквивалентен методу peek () интерфейса Queue. Не выбрасывает исключение;
□ Object peekLast () — возвращает последний элемент дека, не удаляя его. Не выбрасывает исключение;
□ void addFirst(Object obj) — вставляет элемент в начало дека;
□ void addLast (Obj ect obj) — вставляет элемент в конец дека. Эквивалентен методу add () интерфейса Collection;
□ boolean offerFirst (Object obj ) - вставляет элемент в начало дека и возвращает true,
если вставка удалась;
□ boolean offerLast(Object obj) - вставляет элемент в конец дека и возвращает true,
если вставка удалась. Эквивалентен методу offer() интерфейса Queue;
□ Object removeFirst() — возвращает первый элемент дека и удаляет его из дека. Эквивалентен методу remove () интерфейса Queue. Метод выбрасывает исключение, если дек пуст;
□ Object removeLast() — возвращает последний элемент дека и удаляет его из дека. Метод выбрасывает исключение, если дек пуст;
□ Object pollFirst () — возвращает первый элемент дека и удаляет его из дека. Эквивалентен методу poll () интерфейса Queue. В отличие от метода removeFirst ( ) не выбрасывает исключение;
□ Object pollLast() — возвращает последний элемент дека и удаляет его из дека. В отличие от метода removeLast () не выбрасывает исключение;
□ boolean removeFirstOccurrence(Object obj) — удаляет первый встретившийся элемент obj дека и возвращает true, если удалось это сделать. Метод выбрасывает исключение, если дек пуст;
□ boolean removeLastOccurrence(Object obj) — удаляет последний встретившийся элемент obj из дека и возвращает true, если удалось это сделать. Метод выбрасывает исключение, если дек пуст.
Интерфейс BlockingDeque
Интерфейс BlockingQueue из пакета java.util.concurrent, расширяющий интерфейсы Queue
и Deque, описывает дек, с которым работают одновременно несколько подпроцессов,
вставляющих и удаляющих элементы. Их работа организуется таким образом, чтобы
подпроцесс, пытающийся забрать элемент из пустого дека, ждал, когда другой подпро-
цесс занесет в него хотя бы один элемент. Подпроцесс, вставляющий элемент в дек, ждет, когда для него освободится место, если дек уже переполнен.
Читать дальше
Конец ознакомительного отрывка
Купить книгу