powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Queue сбивает порядок элементов при вызове метода poll
5 сообщений из 5, страница 1 из 1
Queue сбивает порядок элементов при вызове метода poll
    #39716192
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создаю очередь:

Код: java
1.
Queue<Song> songs = new PriorityQueue<>((o1, o2) -> 1);



Компаратор такой сделан специально что бы все оставалось в том виде которые есть. У самого объекта Song метод compareTo тоже возвращает 1.

Проблема в том что когда я вызывают метод poll то все элементы в очереди изменяют положение. Почему так? Не понимаю вообще почему он так делает.
...
Рейтинг: 0 / 0
Queue сбивает порядок элементов при вызове метода poll
    #39716208
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя компаратор всегда выдает одно и то же? Т.е. как по твоему приоритет она должна выставлять? Используй другую реализацию очереди которая соответствует ФИЛО
...
Рейтинг: 0 / 0
Queue сбивает порядок элементов при вызове метода poll
    #39716376
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Писатели, блин, и отвечатели такие же. Вопрос на собеседовании на джуна: какой инвариант у компаратора? Вы его нарушаете и хотите чтобы что-то работало.

The implementor must ensure that sgn(compare(x, y)) == -sgn(compare(y, x)) for all x and y.


Другой вопрос, зачем использовать очередь с приоритетом, если приоритет не нужен?
...
Рейтинг: 0 / 0
Queue сбивает порядок элементов при вызове метода poll
    #39716394
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxerПисатели, блин, и отвечатели такие же. Вопрос на собеседовании на джуна: какой инвариант у компаратора? Вы его нарушаете и хотите чтобы что-то работало.

The implementor must ensure that sgn(compare(x, y)) == -sgn(compare(y, x)) for all x and y.


Другой вопрос, зачем использовать очередь с приоритетом, если приоритет не нужен?
Никто ж тебе не запрещает переписать иквалз который всегда будет возвращать тру? Тут тоже самое. Другое дело зачем оно нужно? Ну может человек постигает тонкости работы жвм?
...
Рейтинг: 0 / 0
Queue сбивает порядок элементов при вызове метода poll
    #39716482
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил проблему заменой приоритетной очереди на LinkedList
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Queue сбивает порядок элементов при вызове метода poll
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]