Я создал класс под названием Foo. Foo имеет три поля, все целочисленные: x, y и z. Я хочу сделать PriorityQueue<Foo>
, который по-разному расставляет приоритеты для объектов Foo в разных ситуациях. Например, я мог бы захотеть расставить приоритеты по значению x, или, может быть, по значению y, или, может быть, по z. Но я не буду знать, какое значение я хочу расставить по приоритетам, до времени выполнения. Я слышал, что вы можете использовать компараторы, чтобы каким-то образом навязать порядок на лету, что, я думаю, было бы идеально здесь.
Я смущен тем, как именно я бы это сделал. Может ли кто-нибудь показать мне пример, если я хочу расставить приоритеты по x с помощью компаратора (без переопределения функции compareTo в моем классе Foo)?
Большое спасибо.