SlideShare a Scribd company logo
Очередь
Queue
Виталий Унгурян
unguryan@itstep.org
Java. Интерфейс Queue - очередь
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,
синхронизирован.

More Related Content

What's hot (17)

PPTX
Collections
DmitryTrushkin
 
PDF
07 - Java. Элементы функционального программирования в Java
Roman Brovko
 
PDF
Discovering Lambdas in Java 8
Stfalcon Meetups
 
PPTX
алгоритмы stl
mcroitor
 
PDF
лек9 10
Anastasia Snegina
 
PPT
лекция 5
Zhanna Kazakova
 
PDF
C# Desktop. Занятие 05.
Igor Shkulipa
 
PPT
Stream API
Unguryan Vitaliy
 
PPTX
контейнеры STL
mcroitor
 
PPT
Java. Переменные, типы данных, операторы
Unguryan Vitaliy
 
PPTX
стандартная библиотека с++: введение
mcroitor
 
PDF
Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...
Nikolay Grebenshikov
 
PPTX
Cpp/cli particularities
mcroitor
 
PPTX
Урок 8. Введение в редукцию графов
Система дистанционного обучения MyDLS
 
PPT
01 линейные структуры данных
Fedor Tsarev
 
PPTX
Алгоритмы и структуры данных весна 2014 лекция 1
Technopark
 
PPTX
десант презентация
Андрей Голованов
 
Collections
DmitryTrushkin
 
07 - Java. Элементы функционального программирования в Java
Roman Brovko
 
Discovering Lambdas in Java 8
Stfalcon Meetups
 
алгоритмы stl
mcroitor
 
лек9 10
Anastasia Snegina
 
лекция 5
Zhanna Kazakova
 
C# Desktop. Занятие 05.
Igor Shkulipa
 
Stream API
Unguryan Vitaliy
 
контейнеры STL
mcroitor
 
Java. Переменные, типы данных, операторы
Unguryan Vitaliy
 
стандартная библиотека с++: введение
mcroitor
 
Лекция №5. Линейные структуры данных. Предмет "Структуры и алгоритмы обработк...
Nikolay Grebenshikov
 
Cpp/cli particularities
mcroitor
 
Урок 8. Введение в редукцию графов
Система дистанционного обучения MyDLS
 
01 линейные структуры данных
Fedor Tsarev
 
Алгоритмы и структуры данных весна 2014 лекция 1
Technopark
 
десант презентация
Андрей Голованов
 

Viewers also liked (17)

PPT
Java. Методы
Unguryan Vitaliy
 
PPT
Java. Конструкторы класса и инициализация
Unguryan Vitaliy
 
PPT
Java. Сборщик мусора. Работа с памятью.
Unguryan Vitaliy
 
PPT
Java. Инкапсуляция.
Unguryan Vitaliy
 
PPT
Java. Полиморфизм.
Unguryan Vitaliy
 
PPT
Java. Интерфейс Reference - типы ссылок
Unguryan Vitaliy
 
PPT
Java. Циклы.
Unguryan Vitaliy
 
PPT
An Introduction to JVM Internals and Garbage Collection in Java
Abhishek Asthana
 
PPT
Java. Generic - шаблонные типы.
Unguryan Vitaliy
 
PPT
Исключения и ошибки
Unguryan Vitaliy
 
PPT
Java. Вложенные классы и интерфейсы.
Unguryan Vitaliy
 
PPT
Java. Массивы. Многомерные массивы.
Unguryan Vitaliy
 
PPT
Java. Наследование.
Unguryan Vitaliy
 
PPT
Java. Введение в коллекции. Классы обертки. Перечисленияю
Unguryan Vitaliy
 
PPT
Java. Логические операторы, операторы ветвления.
Unguryan Vitaliy
 
PPT
Java. Cистемы счислния, битовые операции
Unguryan Vitaliy
 
Java. Методы
Unguryan Vitaliy
 
Java. Конструкторы класса и инициализация
Unguryan Vitaliy
 
Java. Сборщик мусора. Работа с памятью.
Unguryan Vitaliy
 
Java. Инкапсуляция.
Unguryan Vitaliy
 
Java. Полиморфизм.
Unguryan Vitaliy
 
Java. Интерфейс Reference - типы ссылок
Unguryan Vitaliy
 
Java. Циклы.
Unguryan Vitaliy
 
An Introduction to JVM Internals and Garbage Collection in Java
Abhishek Asthana
 
Java. Generic - шаблонные типы.
Unguryan Vitaliy
 
Исключения и ошибки
Unguryan Vitaliy
 
Java. Вложенные классы и интерфейсы.
Unguryan Vitaliy
 
Java. Массивы. Многомерные массивы.
Unguryan Vitaliy
 
Java. Наследование.
Unguryan Vitaliy
 
Java. Введение в коллекции. Классы обертки. Перечисленияю
Unguryan Vitaliy
 
Java. Логические операторы, операторы ветвления.
Unguryan Vitaliy
 
Java. Cистемы счислния, битовые операции
Unguryan Vitaliy
 
Ad

Similar to Java. Интерфейс Queue - очередь (7)

PDF
Лекция 4. Стеки и очереди
Mikhail Kurnosov
 
PDF
Лекция 4: Стеки и очереди
Mikhail Kurnosov
 
PPT
Usage concurrence in java
Asya Dudnik
 
PDF
Лекция 4: Стек. Очередь
Mikhail Kurnosov
 
PPTX
очередь
Анюта Димова
 
PDF
Абстрактные типы данных. Списки
Olga Maksimenkova
 
PPTX
Multiprocessor Programming Intro (lecture 3)
Dmitry Tsitelov
 
Лекция 4. Стеки и очереди
Mikhail Kurnosov
 
Лекция 4: Стеки и очереди
Mikhail Kurnosov
 
Usage concurrence in java
Asya Dudnik
 
Лекция 4: Стек. Очередь
Mikhail Kurnosov
 
очередь
Анюта Димова
 
Абстрактные типы данных. Списки
Olga Maksimenkova
 
Multiprocessor Programming Intro (lecture 3)
Dmitry Tsitelov
 
Ad

More from Unguryan Vitaliy (20)

PPT
Модульное тестирование.
Unguryan Vitaliy
 
PPT
Архитектурный шаблон MVC
Unguryan Vitaliy
 
PPT
Работа в команде, управление программными проектами
Unguryan Vitaliy
 
PPT
Системы контроля версий
Unguryan Vitaliy
 
PPT
Принципы SOLID
Unguryan Vitaliy
 
PPT
Парадигма объектно-ориентированного программирования.
Unguryan Vitaliy
 
PPT
Введение в язык программирования «Java»
Unguryan Vitaliy
 
PDF
Шаблоны проектирования GoF
Unguryan Vitaliy
 
PPT
Ввведение в java
Unguryan Vitaliy
 
PPT
Введение в hibernate
Unguryan Vitaliy
 
PPT
Spring AOP
Unguryan Vitaliy
 
PPT
Введение в Spring
Unguryan Vitaliy
 
PPT
Cookies, session и другое в JSP
Unguryan Vitaliy
 
PPT
Сервлеты
Unguryan Vitaliy
 
PPT
Сетевое взаимодействие
Unguryan Vitaliy
 
PPT
Введение в сетевые технологии
Unguryan Vitaliy
 
Модульное тестирование.
Unguryan Vitaliy
 
Архитектурный шаблон MVC
Unguryan Vitaliy
 
Работа в команде, управление программными проектами
Unguryan Vitaliy
 
Системы контроля версий
Unguryan Vitaliy
 
Принципы SOLID
Unguryan Vitaliy
 
Парадигма объектно-ориентированного программирования.
Unguryan Vitaliy
 
Введение в язык программирования «Java»
Unguryan Vitaliy
 
Шаблоны проектирования GoF
Unguryan Vitaliy
 
Ввведение в java
Unguryan Vitaliy
 
Введение в hibernate
Unguryan Vitaliy
 
Spring AOP
Unguryan Vitaliy
 
Введение в Spring
Unguryan Vitaliy
 
Cookies, session и другое в JSP
Unguryan Vitaliy
 
Сервлеты
Unguryan Vitaliy
 
Сетевое взаимодействие
Unguryan Vitaliy
 
Введение в сетевые технологии
Unguryan Vitaliy
 

Java. Интерфейс Queue - очередь

  • 3. FIFO FIFO (акроним First In, First Out — «первым пришёл — первым ушёл») — способ организации и манипулирования данными относительно времени и приоритетов.
  • 4. LIFO LIFO (акроним Last In, First Out, «последним пришёл — первым ушёл») — в структурированном линейном списке, организованном по принципу LIFO, элементы могут добавляться и выбираться только с одного конца, называемого «вершиной списка».
  • 5. Интерфейс Queue PriorityQueue - единственная прямая реализация интерфейса Queue (не считая LinkedList, который больше является списком, чем очередью). Эта очередь упорядочивает элементы либо по их натуральному порядку (используя интерфейс Comparable), либо с помощью интерфейса Comparator, полученному в конструкторе. FIFO.
  • 6. Интерфейс Queue E element(): возвращает, но не удаляет, элемент из начала очереди. Если очередь пуста, генерирует исключение NoSuchElementException boolean offer(E obj): добавляет элемент obj в конец очереди. Если элемент удачно добавлен, возвращает true, иначе - false E peek(): возвращает без удаления элемент из начала очереди. Если очередь пуста, возвращает значение null.
  • 7. Интерфейс Queue E poll(): возвращает с удалением элемент из начала очереди. Если очередь пуста, возвращает значение null E remove(): возвращает с удалением элемент из начала очереди. Если очередь пуста, генерирует исключение NoSuchElementException
  • 8. Интерфейс Deque Интерфейс Deque расширяет вышеописанный интерфейс Queue и определяет поведение двунаправленной очереди, которая работает как обычная однонаправленная очередь, либо как стек, действующий по принципу LIFO (последний вошёл - первый вышел).
  • 9. Интерфейс Deque void addFirst(E obj): добавляет элемент в начало очереди void addLast(E obj): добавляет элемент obj в конец очереди E getFirst(): возвращает без удаления элемент из головы очереди. Если очередь пуста, генерирует исключение NoSuchElementException
  • 10. Интерфейс Deque E getLast(): возвращает без удаления последний элемент очереди. Если очередь пуста, генерирует исключение NoSuchElementException boolean offerFirst(E obj): добавляет элемент obj в самое начало очереди. Если элемент удачно добавлен, возвращает true, иначе - false
  • 11. Интерфейс Deque boolean offerLast(E obj): добавляет элемент obj в конец очереди. Если элемент удачно добавлен, возвращает true, иначе - false E peekFirst(): возвращает без удаления элемент из начала очереди. Если очередь пуста, возвращает значение null
  • 12. Интерфейс Deque E peekLast(): возвращает без удаления последний элемент очереди. Если очередь пуста, возвращает значение null pollFirst(): возвращает с удалением элемент из начала очереди. Если очередь пуста, возвращает значение null
  • 13. Интерфейс Deque E pollLast(): возвращает с удалением последний элемент очереди. Если очередь пуста, возвращает значение null pop(): возвращает с удалением элемент из начала очереди. Если очередь пуста, генерирует исключение NoSuchElementException void push(E element): добавляет элемент в самое начало очереди
  • 14. Класс ArrayDeque ArrayDeque<E> - это класс представляющий обобщённую двунаправленную очередь, наследуя функционал от класса AbstractCollection и применяя интерфейс Deque.
  • 15. Устаревшие коллекции Enumeration — аналог интерфейса Iterator. Vector — аналог класса ArrayList. Поддерживает упорядоченный список элементов, хранимых во "внутреннем" массиве.
  • 16. Устаревшие коллекции Stack — класс, производный от Vector, в который добавлены методы вталкивания (push) и выталкивания (pop) элементов, так что список может трактоваться в терминах, принятых для описания структуры данных стека (stack). Dictionary — аналог интерфейса Map, хотя представляет собой абстрактный класс, а не интерфейс. Hashtable — аналог HashMap, синхронизирован.