Почему в Java нет коллекций типа Queue?

106
29 декабря 2020, 16:30

Смотрю туториал и вижу такие слова:

В Java коллекции делятся на три основных группы: Set — множество, List — список, Map — словарь (или карта).

Первый вопрос, а где Queue? Причем не только в этом туториале (платном), но и в других так пишется, а где очередь? Объясните пожалуйста эту ситуацию

Answer 1

Почему в Java нет коллекций типа Queue?

Есть. Как интерфейс Queue так и его реализации, например, PriorityQueue.

а где Queue?

Не знаю. Может забыли? :-) А может, почему-то считают, что очередь чем-то похожа на список (зависит от определения списка на самом деле). В этом может помочь то, что, пожалуй, наиболее распространенная реализация Queue это класс-список LinkedList.

Второй вариант подтверждает статья на англовики по Java Collections Framework в которой есть раздел «Three Types of Collection» в котором пишется следующее:

There are three generic types of collection: ordered lists, dictionaries/maps, and sets.

Ordered lists allows the programmer to insert items in a certain order and retrieve those items in the same order. An example is a waiting list. The base interfaces for ordered lists are called List and Queue.

Есть три основных типа коллекций: упорядоченные списки, словари/карты и множества

Упорядоченные списки позволяют программисту вставлять элементы в определенном порядке и вытаскивать их в в том же порядке. Примером является список ожидания. Базовыми интерфейсами для упорядоченных списков являются List и Queue.

Цитата указывает на книгу Cay S. Horstmann «Big Java Early Objects» возможно оттуда это и пошло.

Определение упорядоченных списков кажется странным и путанным. Возможно автор хотел помочь начинающим программистам быстро запомнить основные типы коллекций и особо не заботился о формальной точности. Deque и Stack автор тоже видимо относит к спискам.

В документации по Java Collections Framework я никакого разделения на три группы не нашел. В-общем, если определения и классификация данные в туториале помогают Вам уяснить картину то это хорошо, но в итоге итогов ориентироваться лучше на документацию.

Answer 2

Интерфейс Queue наследует от интерфейса Collection.

https://docs.oracle.com/javase/7/docs/api/java/util/Queue.html

READ ALSO
Получить доступ к началу второй строки в TextView

Получить доступ к началу второй строки в TextView

Есть String, который в TextView автоматически переносит слова на вторую строку из-за большое количества слов в одной строкеХотела бы получить доступ...

128
как получить все классы в пакете javaapplication7?

как получить все классы в пакете javaapplication7?

Есть пакет javaapplication7, в нем 3 простых класса A,B,C, затрудняюсь получить их

144
отображение данных в таблице TableView

отображение данных в таблице TableView

Ситуация такаяу меня есть 2 таблицы

112
Передать значение accept в компонент

Передать значение accept в компонент

Необходимо, чтобы при клике на кнопку, окно загрузки файлов открывалось с определенным acceptВ моем примере, accept применяется уже после того,...

135