I'm currently having some trouble understanding how the compareTo method works for the Comparable class, and how to override it. I have array of pairs, each of which hold 2 double values, that I'm trying to sort. This is what I tried:
static class Pair implements Comparable<Pair>
{
double x;
double y;
Pair(double x, double y)
{
this.x = x;
this.y = y;
}
public double compareTo(Pair other)
{
return y - other.y;
}
}
However, it doesn't compile and instead gives me this error:
Main.java:5: error: Pair is not abstract and does not override abstract method compareTo(Pair) in Comparable
static class Pair implements Comparable<Pair>
^
Main.java:14: error: compareTo(Pair) in Pair cannot implement compareTo(T) in Comparable
public double compareTo(Pair other)
^
return type double is not compatible with int
where T is a type-variable:
T extends Object declared in interface Comparable
2 errors
It worked when it was with integers, but not with doubles, why is that? And how could I make it work with doubles? Thanks.