K
koerschgen2001
Gast
Hallo erstmal,
bin ein Java Newbie und versuche gerade das mit compareTo(Object obj) zu verstehen, komme aber nicht ganz hinter die Sache.
Hier erstmal ein paar Codestücke.
Ich verstehe nicht ganz was Methode compareTo macht.
So wie ich das sehe ist name z.B. Heinz Otto. ((Kunde)obj), obj steht für kunden. Nur in diesem Fall würde 0 zurückgegeben da beides, name.compareTo und (((Kunde)obj).name gleich sind.
Das würde in einer Sortierfunktion nicht viel Sinn ergeben. Was gibt "return name.compareTo(((Kunde)obj).name" zurück?
Da dieses Methode nirgendwo aufgerufen wird, muss Arrays.sort(kunden) anscheinend obj übergeben.
Aber was wird da übergeben.
Also erklärungen aus der Fachliteratur was dieses Methode macht habe ich genug gelesen. Ich bräuchte mal eine Erklärung die mir das aufschlüsselt.
bin ein Java Newbie und versuche gerade das mit compareTo(Object obj) zu verstehen, komme aber nicht ganz hinter die Sache.
Hier erstmal ein paar Codestücke.
Code:
// Kunde.java
public class Kunde implements Comparable {
private String name;
private String adresse;
public Kunde(String name, String adresse) {
this.name = name;
this.adresse = adresse;
}
public int compareTo(Object obj) {
if (!(obj instanceof Kunde))
throw new ClassCastException();
return name.compareTo(((Kunde)obj).name);
}
Code:
// Test.java
import java.util.*;
public class Test {
public static void main(String[] args) {
Kunde[] kunden = new Kunde[3];
kunden[0] = new Kunde("Heinz Otto", "Hauptstr. 11, 12345 Entenhausen");
kunden[1] = new Kunde("Karl Mustermann", "Hauptstr. 22, 12345 Entenhausen");
kunden[2] = new Kunde("Günter Meier", "Traum Weg. 5, 12345 Entenhausen");
Arrays.sort(kunden);
Ich verstehe nicht ganz was Methode compareTo macht.
So wie ich das sehe ist name z.B. Heinz Otto. ((Kunde)obj), obj steht für kunden. Nur in diesem Fall würde 0 zurückgegeben da beides, name.compareTo und (((Kunde)obj).name gleich sind.
Das würde in einer Sortierfunktion nicht viel Sinn ergeben. Was gibt "return name.compareTo(((Kunde)obj).name" zurück?
Da dieses Methode nirgendwo aufgerufen wird, muss Arrays.sort(kunden) anscheinend obj übergeben.
Aber was wird da übergeben.
Also erklärungen aus der Fachliteratur was dieses Methode macht habe ich genug gelesen. Ich bräuchte mal eine Erklärung die mir das aufschlüsselt.