Пожалуйста, взгляните на это:
У меня есть сортированный набор:
SortedSet<Individual> individualSortedSet = new TreeSet<Individual>(new FitnessComparator());
Это компаратор:
import java.util.Comparator;
public class FitnessComparator implements Comparator<Individual> {
@Override
public int compare(Individual individual1, Individual individual2) {
if (individual1.getFitness() == individual2.getFitness())
return 0;
return (individual1.getFitness() > individual2.getFitness())? 1 : -1;
}
}
Класс Individual - это просто класс данных.
Когда я пытаюсь добавить элемент объявления в сортированный набор:
individualSortedSet.add(individual);
Я получаю следующую ошибку времени выполнения:
Exception in thread "main" java.lang.ClassCastException: Individual cannot be cast to java.lang.Comparable
Я действительно не понимаю почему. Я просмотрел следующие ссылки, но не могу заставить их работать ..
Почему я я не получаю исключение приведения класса или что-то еще при добавлении элемента в TreeSet
individualSortedSet.add(individual);
- person Benjamin Gruenbaum   schedule 14.11.2013Individual
класс? - person Rohit Jain   schedule 14.11.2013return individual2.getFitness() - individual2.getFitness()
- person Areo   schedule 14.11.2013new TreeSet<Individual>(new FitnessComparator());
, иnew TreeSet<Individual>()
(без компаратора) не задействован? - person Holger   schedule 14.11.2013