Queue
Queue
Queue - interface FIFO.
Методы
- E element() - возвращает, но не удаляет, элемент из начала очереди. Если очередь пуста, генерирует
исключение NoSuchElementException.
- boolean offer(E obj) - добавляет элемент obj в конец очереди. Если элемент удачно добавлен,
возвращает true, иначе - false.
- E peek() - возвращает без удаления элемент из начала очереди. Если очередь пуста, возвращает значение null
- E poll() - возвращает с удалением элемент из начала очереди. Если очередь пуста, возвращает значение null
- E remove() - возвращает с удалением элемент из начала очереди. Если очередь пуста, генерирует
исключение NoSuchElementException
Deque
Queue - interface LIFO/FIFO.
Первый элемент(Head), генерация исключения
- void addFirst(E obj) - добавляет элемент в начало очереди
- void push(E element) - добавляет элемент в начало очереди, нет отличий от addFirst.
- E removeFirst() - возвращает с удалением элемент из начала очереди. Если очередь пуста, генерирует
исключение NoSuchElementException
- E getFirst() - возвращает без удаления элемент из головы очереди. Если очередь пуста, генерирует
исключение NoSuchElementException
- E pop() - возвращает с удалением элемент из начала очереди. Если очередь пуста, генерирует исключение
NoSuchElementException.
Первый элемент(Head), возвращение значения
- boolean offerFirst(E obj) - добавляет элемент obj в самое начало очереди. Если элемент удачно добавлен,
возвращает true, иначе - false
- E pollFirst() - возвращает с удалением элемент из начала очереди. Если очередь пуста, возвращает значение null
- E peekFirst() - возвращает без удаления элемент из начала очереди. Если очередь пуста, возвращает значение null
Последний элемент(Tail), генерация исключения
- void addLast(E obj) - добавляет элемент obj в конец очереди
- E removeLast() - возвращает с удалением элемент из конца очереди. Если очередь пуста, генерирует
исключение NoSuchElementException
- E getLast() - возвращает без удаления последний элемент очереди. Если очередь пуста, генерирует
исключение NoSuchElementException
Последний элемент(Tail), возвращение значения
- boolean offerLast(E obj) - добавляет элемент obj в конец очереди. Если элемент удачно добавлен,
возвращает true, иначе - false
- E pollLast() - возвращает с удалением последний элемент очереди. Если очередь пуста, возвращает значение null
- E peekLast() - возвращает без удаления последний элемент очереди. Если очередь пуста, возвращает значение null
Поиск и удаление
- boolean removeFirstOccurrence(Object obj) - удаляет первый встреченный элемент obj из очереди. Если
удаление успешно, то возвращает true, иначе возвращает false.
- boolean removeLastOccurrence(Object obj) - удаляет последний встреченный элемент obj из очереди. Если
удаление успешно, то возвращает true, иначе возвращает false.
ArrayDeque
ArrayDeque - реализация Queue и Deque.
Конструкторы
- ArrayDeque(): создает пустую очередь
- ArrayDeque(Collection<? extends E> col): создает очередь, наполненную элементами из коллекции col
- ArrayDeque(int capacity): создает очередь с начальной емкостью capacity. Default 16.
PriorityQueue
PriorityQueue - FIFO. Queue в котором приоритетные элементы будут помещаться в начало очереди. Для
пользовательских классов использует Comparator, для Integer, String, Character не нужно.
Stack - FILO.
Конструкторы
- PriorityQueue() - очередь PriorityQueue с начальной вместимостью по умолчанию (11), элементы которой
упорядочены в соответствии с их естественным порядком
- PriorityQueue(int initialCapacity) - очередь PriorityQueue с указанной начальной вместимостью,
элементы которой упорядочены в соответствии с их естественным порядком
- PriorityQueue(int initialCapacity, Comparator<? super E> comparator) - очередь PriorityQueue с
указанной начальной вместимостью, элементы которой упорядочены в соответствии с указанным компаратором
- PriorityQueue(Collection<? extends E> c) - очередь PriorityQueue, которая содержит элементы
из указанной коллекции
- PriorityQueue(Comparator<? super E> comparator) - очередь PriorityQueue с начальной вместимостью
по умолчанию, элементы которой упорядочены в соответствии с указанным компаратором
- PriorityQueue(PriorityQueue<? extends E> c) - PriorityQueue, которая содержит элементы из другой PriorityQueue
Синхронизированные очереди
ArrayBlockingQueue
LinkedBlockingDeque
PriorityBlockingQueue
SynchronousQueue - put() - после добавления блокирует поток, пока другой поток не сделает take() и
наоборот(take() блокирует до put()). Применяется когда нужно двум потокам обменяться информацией.