| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Ограниченная PriorityQueue<Integer> |
| Автор: arcsupport 15.1.2012, 17:49 |
| Как сделать ограниченную по размеру PriorityQueue<Integer> таким образом, чтобы из нее выталкивались максимальные элементы? Как из нее получить последний и предпоследний элементы? |
| Автор: Pawl 30.1.2012, 01:32 |
| Не совсем понял, что значит "ограниченная по размерам". Т. е. способная содержать не более определенного количества объектов? Может, в выполняемом коде можно просто организовать проверку размера очереди, и, если больше, чем надо, выбрасывать исключение? Можно сортировать очередь в обратном порядке компаратором, а потом 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 |
Согласен, в своем предыдущем посте с я сортировкой погорячился, в полвторого ночи писал |