habe mal aus langeweile eine Klasse Hund geschrieben,um Comparable und Equals zu
implementieren.doch irgendwie liegt noch ein kleiner fehler in equals.comparable liefert das richtige..
nur equals nicht.bsp:
Hund h1 = new Hund("Bello",5);
Hund h2 = new Hund("Bello",5);
comparable liefert 0,da name und alter gleich sind. equals aber false..
implementieren.doch irgendwie liegt noch ein kleiner fehler in equals.comparable liefert das richtige..
nur equals nicht.bsp:
Hund h1 = new Hund("Bello",5);
Hund h2 = new Hund("Bello",5);
comparable liefert 0,da name und alter gleich sind. equals aber false..
Java:
public class Hund implements Comparable<Hund>{
private String name;
private int alter;
public Hund(String name, int alter){
this.name = name;
this.alter = alter;
}
public int getAlter() {
return alter;
}
public String getName(){
return name;
}
public int compareTo(Hund h){ // vergleich auf alter und name
if( h.getAlter() == this.getAlter()){
return 0;
}
if(h.getAlter() <this.getAlter()){
return -1;
}
if(h.getAlter() > this.getAlter()){
return 1;
}
return getName().compareTo(h.getName());
}
// Equals definieren
public boolean Equals(Object o){
if(o == null){
return false;
}
if( o == this){
return true;
}
if(! o.getClass().equals(this.getClass())){
return false;
}
Hund that = (Hund) o;
return this.getName() == that.getName() && this.getAlter() == that.getAlter();
}
}