Hallo,
ich möchte ein HashSet verwenden, dass ich mit eigenen Datentypen füttern möchte. Sofern sie sich inhaltlich doppeln, sollen sie entsprechend nicht eingefügt werden. Weder die Implementierung des Comparable-Inferfaces noch 'ne schlicht angepasste "equals" Methode führen zum gewünschten Resultat.
Was mach ich falsch?
Grüße aus Berlin,
Stephan
Und
ich möchte ein HashSet verwenden, dass ich mit eigenen Datentypen füttern möchte. Sofern sie sich inhaltlich doppeln, sollen sie entsprechend nicht eingefügt werden. Weder die Implementierung des Comparable-Inferfaces noch 'ne schlicht angepasste "equals" Methode führen zum gewünschten Resultat.
Was mach ich falsch?
Grüße aus Berlin,
Stephan
Java:
package comparable;
public class Daten implements Comparable<Daten>{
int i = -1;
public Daten(){
}
public int compareTo(Daten o) {
if(this.i == o.i)
return 0;
else
return -1;
}
public boolean equals(Daten o){
if(this.i == o.i)
return true;
else
return false;
}
Und
Java:
package comparable;
import java.util.HashSet;
public class Sammelklasse extends HashSet<Daten> {
public Sammelklasse(){
Daten d1 = new Daten();
d1.i = 5;
Daten d2 = new Daten();
d2.i = 6;
Daten d3 = new Daten();
d3.i = 5;
add(d1);
add(d2);
add(d3);
System.out.println(this.size());
}
}