Mam taki swój kod, nie działa niestety:
public class Node implements Comparable<Object> {
public Node(){
}
public Node(int wartosc){
this.wartosc = wartosc;
}
public Node(Node korzen, int wartosc) {
this.korzen = korzen;
this.wartosc = wartosc;
}
public Node korzen, left_son, right_son, rodzic;
Node element;
int wartosc;
// @Override
// public boolean equals(Object obj) {
// if (obj instanceof Node) {
// if (obj == this) {
// return true;
// }
// Node other = (Node) obj;
// return other.wartosc == wartosc ;
// }
// return false;
-
*return super.equals(obj);
// }
// @Override
// public int hashCode() {
// return super.hashCode();
// }
public int compareTo(Object o) {
final int BEFORE = -1;
final int EQUAL = 0;
final int AFTER = 1;
if (this == o) return EQUAL;
final Node that = (Node)o;
if (this.wartosc < that.wartosc) return BEFORE;
if (this.wartosc > that.wartosc) return AFTER;
return EQUAL;
//throw new UnsupportedOperationException("Not supported yet.");
}
}
Potrzebuje mieć możliwość porównywania takich obiektów pod względem pola 'wartosc'. Do końca niewiem jak przeciążyć te metody?
I w jakim celu jest konieczne przeciążenie obu metod: equals i hashcode ?