Queue - очередь
-
Upload
unguryan-vitaliy -
Category
Education
-
view
44 -
download
1
Transcript of Queue - очередь
![Page 2: Queue - очередь](https://reader036.fdocument.pub/reader036/viewer/2022082510/58e49d841a28abf5428b5775/html5/thumbnails/2.jpg)
![Page 3: Queue - очередь](https://reader036.fdocument.pub/reader036/viewer/2022082510/58e49d841a28abf5428b5775/html5/thumbnails/3.jpg)
FIFO
FIFO (акроним First In, First Out — «первым пришёл — первым ушёл») — способ организации и манипулирования данными относительно времени и приоритетов.
![Page 4: Queue - очередь](https://reader036.fdocument.pub/reader036/viewer/2022082510/58e49d841a28abf5428b5775/html5/thumbnails/4.jpg)
LIFO
LIFO (акроним Last In, First Out, «последним пришёл — первым ушёл») — в структурированном линейном списке, организованном по принципу LIFO, элементы могут добавляться и выбираться только с одного конца, называемого «вершиной списка».
![Page 5: Queue - очередь](https://reader036.fdocument.pub/reader036/viewer/2022082510/58e49d841a28abf5428b5775/html5/thumbnails/5.jpg)
Интерфейс Queue
PriorityQueue - единственная прямая реализация интерфейса Queue (не считая LinkedList, который больше является списком, чем очередью).Эта очередь упорядочивает элементы либо по их натуральному порядку (используя интерфейс Comparable), либо с помощью интерфейса Comparator, полученному в конструкторе. FIFO.
![Page 6: Queue - очередь](https://reader036.fdocument.pub/reader036/viewer/2022082510/58e49d841a28abf5428b5775/html5/thumbnails/6.jpg)
Интерфейс Queue E element(): возвращает, но не удаляет,
элемент из начала очереди. Если очередь пуста, генерирует исключение NoSuchElementException
boolean offer(E obj): добавляет элемент obj в конец очереди. Если элемент удачно добавлен, возвращает true, иначе - false
E peek(): возвращает без удаления элемент из начала очереди. Если очередь пуста, возвращает значение null.
![Page 7: Queue - очередь](https://reader036.fdocument.pub/reader036/viewer/2022082510/58e49d841a28abf5428b5775/html5/thumbnails/7.jpg)
Интерфейс Queue
E poll(): возвращает с удалением элемент из начала очереди. Если очередь пуста, возвращает значение null
E remove(): возвращает с удалением элемент из начала очереди. Если очередь пуста, генерирует исключение NoSuchElementException
![Page 8: Queue - очередь](https://reader036.fdocument.pub/reader036/viewer/2022082510/58e49d841a28abf5428b5775/html5/thumbnails/8.jpg)
Интерфейс Deque
Интерфейс Deque расширяет вышеописанный интерфейс Queue и определяет поведение двунаправленной очереди, которая работает как обычная однонаправленная очередь, либо как стек, действующий по принципу LIFO (последний вошёл - первый вышел).
![Page 9: Queue - очередь](https://reader036.fdocument.pub/reader036/viewer/2022082510/58e49d841a28abf5428b5775/html5/thumbnails/9.jpg)
Интерфейс Deque
void addFirst(E obj): добавляет элемент в начало очереди
void addLast(E obj): добавляет элемент obj в конец очереди
E getFirst(): возвращает без удаления элемент из головы очереди. Если очередь пуста, генерирует исключение NoSuchElementException
![Page 10: Queue - очередь](https://reader036.fdocument.pub/reader036/viewer/2022082510/58e49d841a28abf5428b5775/html5/thumbnails/10.jpg)
Интерфейс Deque
E getLast(): возвращает без удаления последний элемент очереди. Если очередь пуста, генерирует исключение NoSuchElementException
boolean offerFirst(E obj): добавляет элемент obj в самое начало очереди. Если элемент удачно добавлен, возвращает true, иначе - false
![Page 11: Queue - очередь](https://reader036.fdocument.pub/reader036/viewer/2022082510/58e49d841a28abf5428b5775/html5/thumbnails/11.jpg)
Интерфейс Deque
boolean offerLast(E obj): добавляет элемент obj в конец очереди. Если элемент удачно добавлен, возвращает true, иначе - false
E peekFirst(): возвращает без удаления элемент из начала очереди. Если очередь пуста, возвращает значение null
![Page 12: Queue - очередь](https://reader036.fdocument.pub/reader036/viewer/2022082510/58e49d841a28abf5428b5775/html5/thumbnails/12.jpg)
Интерфейс Deque
E peekLast(): возвращает без удаления последний элемент очереди. Если очередь пуста, возвращает значение null
pollFirst(): возвращает с удалением элемент из начала очереди. Если очередь пуста, возвращает значение null
![Page 13: Queue - очередь](https://reader036.fdocument.pub/reader036/viewer/2022082510/58e49d841a28abf5428b5775/html5/thumbnails/13.jpg)
Интерфейс Deque
E pollLast(): возвращает с удалением последний элемент очереди. Если очередь пуста, возвращает значение null
pop(): возвращает с удалением элемент из начала очереди. Если очередь пуста, генерирует исключение NoSuchElementException
void push(E element): добавляет элемент в самое начало очереди
![Page 14: Queue - очередь](https://reader036.fdocument.pub/reader036/viewer/2022082510/58e49d841a28abf5428b5775/html5/thumbnails/14.jpg)
Класс ArrayDeque
ArrayDeque<E> - это класс представляющий обобщённую двунаправленную очередь, наследуя функционал от класса AbstractCollection и применяя интерфейс Deque.
![Page 15: Queue - очередь](https://reader036.fdocument.pub/reader036/viewer/2022082510/58e49d841a28abf5428b5775/html5/thumbnails/15.jpg)
Устаревшие коллекции
Enumeration — аналог интерфейса Iterator.Vector — аналог класса ArrayList. Поддерживает упорядоченный список элементов, хранимых во "внутреннем" массиве.
![Page 16: Queue - очередь](https://reader036.fdocument.pub/reader036/viewer/2022082510/58e49d841a28abf5428b5775/html5/thumbnails/16.jpg)
Устаревшие коллекции
Stack — класс, производный от Vector, в который добавлены методы вталкивания (push) и выталкивания (pop) элементов, так что список может трактоваться в терминах, принятых для описания структуры данных стека (stack).Dictionary — аналог интерфейса Map, хотя представляет собой абстрактный класс, а не интерфейс. Hashtable — аналог HashMap, синхронизирован.