Скажем, у меня есть объект Song типа
public Song(){
String artist, title;
StringBuilder lyrics;
int rank;
}
Возможно ли иметь несколько методов сравнения, которые в зависимости от используемой коллекции сортируют по определенному полю? У этого объекта уже есть метод сравнения для упорядочения на основе значений художника и заголовка, и я хотел бы иметь возможность упорядочить на основе ранга.
Мой текущий проект требует, чтобы мы запустили поиск по тексту песни и вернули список совпадений от верхнего до нижнего уровня. Я хочу использовать PriorityQueue для проведения матчей на основе значения ранга.
Обычно я просто создаю другой объект для хранения Песни и звания, но этот проект не только подключается к графическому интерфейсу, предоставленному преподавателем, который требует, чтобы все результаты передавались в массив Song [], но и распечатывал первые десять значений как ранг, исполнитель, название.
Я могу использовать toArray () для преобразования очереди, но если я использую ее для хранения чего-либо, кроме объектов Song, она выдаст исключение ArrayStoreException.
Так возможно ли это, или мне нужно изменить существующий метод сравнения для сортировки по целочисленному значению?