Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Ограниченная PriorityQueue<Integer>


Автор: arcsupport 15.1.2012, 17:49
Как сделать ограниченную по размеру PriorityQueue<Integer> таким образом, чтобы из нее выталкивались максимальные элементы?
Как из нее получить последний и предпоследний элементы?

Автор: Pawl 30.1.2012, 01:32
Не совсем понял, что значит "ограниченная по размерам". Т. е. способная содержать не более определенного количества объектов? Может, в выполняемом коде можно просто организовать проверку размера очереди, и, если больше, чем надо, выбрасывать исключение?
Цитата(arcsupport @  15.1.2012,  17:49 Найти цитируемый пост)
Как из нее получить последний и предпоследний элементы?

Можно сортировать очередь в обратном порядке компаратором, а потом 2 раза вызвать метод poll()

Автор: Stolzen 30.1.2012, 09:00
Вот, http://www.javatalks.ru/sutra138260.php#138260 - может пригодится.
Ограничение задается с помощью декоратора CircularQueue, который может принимать любую очередь, в т.ч. и очередь с приоритетом. 

Получение последнего элемента - peek или poll.
Для получения первого и последнего следует использовать Deque и методы getLast и getFirst. 

Автор: Pawl 30.1.2012, 09:12
Цитата(Stolzen @  30.1.2012,  09:00 Найти цитируемый пост)
Получение последнего элемента - peek или poll.

Согласен, в своем предыдущем посте с я сортировкой погорячился, в полвторого ночи писал smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)