hallo,
ich habe folgendes beispielprogramm, das soweit auch funktioniert, nur verstehe ich nicht ganz die funktionsweise, bzw. hab ein paar fragen zu einigen sachen.
es gibt einmal eine klasse konto:
Eine weitere Klasse Kontovergleich:
In der Hauptklasse wird dann ein Vektor Konten angelegt und mit mehreren Objekten der Klasse Konto gefüllt, anschließend mit:
sortiert und wieder ausgegeben.
So nun zu meinen Fragen:
1. was genau bewirkt die compareTo methode in der Konto-Klasse, bzw für was benötige ich sie ?
2. für was wird die methode boolean equals benötigt
3. wo liegt der unterschied zw. compare und compareto, bzw. warum werden einmal zwei objekte und einmal nur eins benötigt ?
schon vielen dank für eure hilfe
ich habe folgendes beispielprogramm, das soweit auch funktioniert, nur verstehe ich nicht ganz die funktionsweise, bzw. hab ein paar fragen zu einigen sachen.
es gibt einmal eine klasse konto:
Code:
class konto extends Object implements Comparable {
private String inhaber;
private float guthaben;
private int nummer;
/*Konstruktoren*/
public float getGuthaben() {return guthaben;}
/*Weitere Methoden*/
public int compareTo(Object o) {
if (((Konto)o).getGuthaben() > guthaben) return 1;
if (((Konto)o).getGuthaben() < guthaben) return -1;
return 0; }
}
Eine weitere Klasse Kontovergleich:
Code:
class Kontovergleich implements Comparator {
public int compare(Object o1, Object o2)
{
if ((((Konto)o1.getGuthaben() > ((Konto)o2.getGuthaben()) return -1;
if ((((Konto)o1.getGuthaben() < ((Konto)o2.getGuthaben()) return 1;
return 0;
}
public boolean equals(Object obj)
{return false}
}
In der Hauptklasse wird dann ein Vektor Konten angelegt und mit mehreren Objekten der Klasse Konto gefüllt, anschließend mit:
Code:
Collections.sort(Konten, new Kontovergleich());
So nun zu meinen Fragen:
1. was genau bewirkt die compareTo methode in der Konto-Klasse, bzw für was benötige ich sie ?
2. für was wird die methode boolean equals benötigt
3. wo liegt der unterschied zw. compare und compareto, bzw. warum werden einmal zwei objekte und einmal nur eins benötigt ?
schon vielen dank für eure hilfe