Supportnet / Forum / Anwendungen(Java,C++...)
JAVA: Vektor sortieren
Frage
Hi!
Angenommen ich habe einen Vector, den ich mit Objekten, z.Bsp. Kontos, gefüllt habe. JEdes Konto-Objekt hat eine Kontonummer, und einen Namen.
Der Vektor sieht bspw. so aus(hier nur mit Kto-Nr.):
{(4), (10), (1), (3)}
Nun will ich ihn sortieren, und zwar geordnet nach Kontonummern. Die Methode, nach der ich suche, soll also liefern:
{(1), (3), (4), (10)}
HIermit klappt es jedenfalls nicht:
//Methode Sortieren nach Kontonummern
public void kontenSortieren () {
---Konto x = null;
---Konto y = null;
---int i = 0;
---int j = 0;
---for ( i = 0; i < (konten.size()-1); i++) {
------for ( j = i+1; j < konten.size(); j++) {
---------x = (Konto) konten.elementAt(i);
---------y = (Konto) konten.elementAt(j);
---------if (x.gibKontonr() > y.gibKontonr()) {
---------------Konto tmp;
---------------tmp = x;
---------------x = y;
---------------y = tmp;
---------}//end if
-------}//end for (j...)
---}//end for (i...)
}// end method
Wisst Ihr vielleicht eine Lösung?
Danke,
C.
Antwort 1 von disco
moin
hab mir zwar jetzt den algorithmus nicht so genau angeguckt (soll wohl nen bubblesort oder so werden) aber wo ordnest du den vector neu?
ich schreibs mal logisch auf.:
Konto tmp = Konto x;
Konto x; = Konto y;
Konto y = Konto tmp;
damit überschreibste einfach nur irgendwelche konto-objekte. du musst die ja auch wieder in einen vector schreiben oder so. im grunde machste eigentlich gar nix.
g,
disco
hab mir zwar jetzt den algorithmus nicht so genau angeguckt (soll wohl nen bubblesort oder so werden) aber wo ordnest du den vector neu?
ich schreibs mal logisch auf.:
Konto tmp = Konto x;
Konto x; = Konto y;
Konto y = Konto tmp;
damit überschreibste einfach nur irgendwelche konto-objekte. du musst die ja auch wieder in einen vector schreiben oder so. im grunde machste eigentlich gar nix.
g,
disco
Antwort 2 von semi
...class Konto implements Comparable
...
public int compare(Object o)
{
return this.kontoNr.compareTo(((Konto)o).kontoNr);
}
...
Collections.sort(vectorVollerKonten);
Antwort 3 von GrapeFruit
@Semi
Hi!
Vielen Dank! Hatte inzwischen eine andere Lösung, nicht so elegant wie Deine, gefunden: Habe die Kto-Nr. in ein Array gelegt, dort sortiert, und anschließend den Vektor wieder mit den entsprechenden Kto-Objekten gefüllt.
Ciao,
Claudia
Hi!
Vielen Dank! Hatte inzwischen eine andere Lösung, nicht so elegant wie Deine, gefunden: Habe die Kto-Nr. in ein Array gelegt, dort sortiert, und anschließend den Vektor wieder mit den entsprechenden Kto-Objekten gefüllt.
Ciao,
Claudia

