У меня есть класс Person, у которого есть поле - age
. Объекты из этого класса помещаются в очередь:
ArrayDeque<Person> queue = new ArrayDeque<Person>();
Я бы хотел отсортировать элементы в очереди таким образом, чтобы Person с наибольшим значением свойства age
стал первым в очереди. Я пытался использовать priorityQueue
, но не знаю, как скопировать значения из обычной очереди в приоритетную и в то же время использовать для сравнения компаратор. Как мне заставить это работать?
Comparator<Person> sorter = Comparator.comparing(Person::getAge);
PriorityQueue<Person> priorityQueue = new PriorityQueue<Person>(queue, sorter);
(this is obviously invalid, is there a workaround so as to copy the queue and have a comparator at the same time?)