Upload
unguryan-vitaliy
View
44
Download
1
Embed Size (px)
Citation preview
Очередь Queue
Виталий Унгурян [email protected]
FIFO
FIFO (акроним First In, First Out — «первым пришёл — первым ушёл») — способ организации и манипулирования данными относительно времени и приоритетов.
LIFO
LIFO (акроним Last In, First Out, «последним пришёл — первым ушёл») — в структурированном линейном списке, организованном по принципу LIFO, элементы могут добавляться и выбираться только с одного конца, называемого «вершиной списка».
Интерфейс Queue
PriorityQueue - единственная прямая реализация интерфейса Queue (не считая LinkedList, который больше является списком, чем очередью).Эта очередь упорядочивает элементы либо по их натуральному порядку (используя интерфейс Comparable), либо с помощью интерфейса Comparator, полученному в конструкторе. FIFO.
Интерфейс Queue E element(): возвращает, но не удаляет,
элемент из начала очереди. Если очередь пуста, генерирует исключение NoSuchElementException
boolean offer(E obj): добавляет элемент obj в конец очереди. Если элемент удачно добавлен, возвращает true, иначе - false
E peek(): возвращает без удаления элемент из начала очереди. Если очередь пуста, возвращает значение null.
Интерфейс Queue
E poll(): возвращает с удалением элемент из начала очереди. Если очередь пуста, возвращает значение null
E remove(): возвращает с удалением элемент из начала очереди. Если очередь пуста, генерирует исключение NoSuchElementException
Интерфейс Deque
Интерфейс Deque расширяет вышеописанный интерфейс Queue и определяет поведение двунаправленной очереди, которая работает как обычная однонаправленная очередь, либо как стек, действующий по принципу LIFO (последний вошёл - первый вышел).
Интерфейс Deque
void addFirst(E obj): добавляет элемент в начало очереди
void addLast(E obj): добавляет элемент obj в конец очереди
E getFirst(): возвращает без удаления элемент из головы очереди. Если очередь пуста, генерирует исключение NoSuchElementException
Интерфейс Deque
E getLast(): возвращает без удаления последний элемент очереди. Если очередь пуста, генерирует исключение NoSuchElementException
boolean offerFirst(E obj): добавляет элемент obj в самое начало очереди. Если элемент удачно добавлен, возвращает true, иначе - false
Интерфейс Deque
boolean offerLast(E obj): добавляет элемент obj в конец очереди. Если элемент удачно добавлен, возвращает true, иначе - false
E peekFirst(): возвращает без удаления элемент из начала очереди. Если очередь пуста, возвращает значение null
Интерфейс Deque
E peekLast(): возвращает без удаления последний элемент очереди. Если очередь пуста, возвращает значение null
pollFirst(): возвращает с удалением элемент из начала очереди. Если очередь пуста, возвращает значение null
Интерфейс Deque
E pollLast(): возвращает с удалением последний элемент очереди. Если очередь пуста, возвращает значение null
pop(): возвращает с удалением элемент из начала очереди. Если очередь пуста, генерирует исключение NoSuchElementException
void push(E element): добавляет элемент в самое начало очереди
Класс ArrayDeque
ArrayDeque<E> - это класс представляющий обобщённую двунаправленную очередь, наследуя функционал от класса AbstractCollection и применяя интерфейс Deque.
Устаревшие коллекции
Enumeration — аналог интерфейса Iterator.Vector — аналог класса ArrayList. Поддерживает упорядоченный список элементов, хранимых во "внутреннем" массиве.
Устаревшие коллекции
Stack — класс, производный от Vector, в который добавлены методы вталкивания (push) и выталкивания (pop) элементов, так что список может трактоваться в терминах, принятых для описания структуры данных стека (stack).Dictionary — аналог интерфейса Map, хотя представляет собой абстрактный класс, а не интерфейс. Hashtable — аналог HashMap, синхронизирован.