Java «не может быть приведена к Comparable» при использовании TreeMap [duplicate]
Возможный дубликат:
Java: SortedMap, TreeMap, сопоставимый? Как пользоваться?
Я использую JavaДжанги пакет graph и Netbeans 7. Я получаю следующую ошибку от Java:
Exception in thread "main" java.lang.ClassCastException: graphvisualization.MyVertex cannot be cast to java.lang.Comparable
at java.util.TreeMap.put(TreeMap.java:542)
Вот код, связанный с ошибкой:
SortedMap vMap = new TreeMap();
double curRank = 0;
for(MyVertex v: g.getVertices()) //g is a SparseGraph
{
curRank = vertexRank.getVertexScore(v);
vMap.put(v, curRank); //**Here is my Error**
}
Класс MyVertex - это класс, который я создал для графиков. Ниже приведен код для MyVertex
public class MyVertex
{
int vID; //id for this vertex
double centrality; //centrality measure for this vertex
int degree; //the degree of this vertex
public MyVertex(int id)
{
this.vID = id;
this.centrality=0;
this.degree=0;
}
public double getCentrality()
{
return this.centrality;
}
public void setCentrality(double centrality)
{
this.centrality = centrality;
}
public int getDegree()
{
return this.degree;
}
public void setDegree(int deg)
{
this.degree = deg;
}
public void incrementDegree()
{
this.degree++;
}
public void decrementDegree()
{
this.degree--;
}
@Override
public String toString()
{
return "v"+vID;
}
int compareTo(MyVertex v)
{
return (this.degree < v.degree) ? 1 : 0; //this will do descendingly
}
}
Как я могу получить типы MyVertex, которые будут преобразованы в Comparables?Почему это необходимо? (Не сразу вижу причину)