Hallo zusammen
Ich bin neu hier im Forum und weiss wahrscheinlich noch nicht so wies läuft hier…
Hab mich hier angemeldet da ich ein java newbie bin und etwas hilfe gut gebrauchen könnte… habe google und die SuFu schon konsultiert, jeodch fand ich leider nichts, was irgendwie passte...
Habe folgendes problem:
Klasse Person (name, vorname, adresse)
Klasse Adresse (strasse, nr, plz, ort, land)
Es geht in einer aufgabe darum, mittels der Schnittstelle comparable und der methode compareTo() eine Ausgabe nach person und adresse zu sortieren. Mein problem ist nun, dass eigentlich beide Sortieralgorithmen für sich alleine funktionieren, jedoch funktioniert die Kombination nicht.
Es ist verlang, dass die objekte (person mit zugehöriger adresse) in einam array abgelegt werden und mit bubblesort wieder sortiert ausgegeben werden.
hier die methode main: hier passiert der bublesort, wobei auf die Klass Person zugegriffen wird, welche wiederum auf die klasse adresse zugreift...
AUSSCHNIT AUS KLASSE PERSON
Aussschnitt aus adresse:
wäre genial, wenn mir jemand helfen könnte. habe schon stunden damit verbranten, den fehler zu finden.... ich glaube, es ist nur ein klitze kleiner denkfehler...
gruss
dundee
Ich bin neu hier im Forum und weiss wahrscheinlich noch nicht so wies läuft hier…
Hab mich hier angemeldet da ich ein java newbie bin und etwas hilfe gut gebrauchen könnte… habe google und die SuFu schon konsultiert, jeodch fand ich leider nichts, was irgendwie passte...
Habe folgendes problem:
Klasse Person (name, vorname, adresse)
Klasse Adresse (strasse, nr, plz, ort, land)
Es geht in einer aufgabe darum, mittels der Schnittstelle comparable und der methode compareTo() eine Ausgabe nach person und adresse zu sortieren. Mein problem ist nun, dass eigentlich beide Sortieralgorithmen für sich alleine funktionieren, jedoch funktioniert die Kombination nicht.
Es ist verlang, dass die objekte (person mit zugehöriger adresse) in einam array abgelegt werden und mit bubblesort wieder sortiert ausgegeben werden.
hier die methode main: hier passiert der bublesort, wobei auf die Klass Person zugegriffen wird, welche wiederum auf die klasse adresse zugreift...
Java:
public static void main(String[] args)
{
Adresse a1 = new Adresse("Buchholzstrasse", 2, 6314, "Unterägeri", "C");
Adresse a2 = new Adresse("Ahornstrasse", 45, 4567, "Freakingen",
"Deutschland");
Adresse a3 = new Adresse("Cucumberstrasse", 7, 6315, "Oberägeri", "CH");
Adresse a4 = new Adresse("Buchholzstrasse", 2, 6314, "Unterägeri", "B");
Adresse a5 = new Adresse("Buchholzstrasse", 2, 6314, "Unterägeri", "A");
Adresse a6 = new Adresse("Furzheimstrasse", 666, 1999, "Silicon Valley", "USA");
Person[] arr = new Person[10];
arr[0] = new Person("Berta", "Bollwerk", a5);
arr[1] = new Person("Cedric", "Cermeno", a6);
arr[2] = new Person("Arnold", "Dundee", a4);
arr[3] = new Person("Gustav", "Dösenbröt", a1);
arr[4] = new Person("Alexander", "Donders", a2);
arr[5] = new Person("Alexander", "Donders", a5);
Person temp = new Person();
for (int s = 0; s < 10; s++)
{
for (int i = 0; i < arr.length - 1; i++)
{
if ((arr[i] != null) && (arr[i + 1] != null))
{
int res = arr[i].compareTo(arr[i + 1]);
if (res > 0)
{
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
}
showArr(arr);
}
public static void showArr(Person[] arr)
{
for (int i = 0; i < arr.length; i++)
{
System.out.println(arr[i]);
}
}
}
AUSSCHNIT AUS KLASSE PERSON
Java:
public int compareTo(Person person)
{
int cName = this.name.compareTo(person.name);
int cVorname = this.vorname.compareTo(person.vorname);
int cAdresse = this.adresse.compareTo(adresse);
if (cVorname == 0)
{
return cName;
}
else if ((cVorname == 0) && (cName == 0))
{
return cAdresse;
}
else
{
return cVorname;
}
}
Aussschnitt aus adresse:
Java:
public int compareTo(Adresse adresse)
{
int cStrasse = this.strasse.compareTo(adresse.strasse);
int cOrt = this.ort.compareTo(adresse.ort);
int cLand = this.land.compareTo(adresse.land);
if (cStrasse == 0)
{
return this.nummer;
}
if (cOrt == 0)
{
return cLand;
}
else
{
return cStrasse;
}
}
wäre genial, wenn mir jemand helfen könnte. habe schon stunden damit verbranten, den fehler zu finden.... ich glaube, es ist nur ein klitze kleiner denkfehler...
gruss
dundee