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

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



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

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

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


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

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


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


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