DataTable-Inhalt sortieren

ceene

Erfahrenes Mitglied
Hallo alle zusammen

Ich habe mal eine Frage zum sortieren einer Liste.
Ich habe eine Liste die aus EntityBean-Objecten besteht. Diese Liste wird dann in meinem dataTable angezeigt. Nun möchte ich gerne die Liste nach einem bestimmten Feld sortieren.
Da das Feld aber nicht in der Datenbank ist sondern nach dem Select von mir aufbereitet wird, kann ich nicht mit der "ORDER BY" Klausel im Select arbeiten.

Nun würde ich gerne wissen wie ich denn die Liste nach dem einen Feld sortieren lassen kann?

Kennt jemand ein Beispiel?
 
Hab mir jetzt selber ne funktion geschrieben in der ich die Liste sortiere, in dem ich den BubbleSortCode nutze und einfach das zu tauschende Object mit "Object.remove(index)" aus der Liste lesen/lösche und dann wieder mit "Object.add(Object o) reinschreibe. damit es am ende der Liste wieder auftaucht.
 
Hi Ceene,

wenn Du BubbleSort nimmst, ist das nicht wirklich performant.
Etwas besser wäre Collections.sort( myList ), da nimmt Dir Java den Algorithmus ab
indem ein modifizierter MergeSort verwendet wird (n log n).

Als Trick musst Du deiner Bean das Comparable Interface implementieren.
Jedes Attribut der Bean stünde dann für einen Listeneintrag.
Z.B. name...
Dann machst Du anstatt einer Liste mit Listen eine einzige Liste mit Beans.
Diesen Beans sagst Du, nach welchem Attribut sie zu vergleichen sind (ich habe das
compIndex genannt).
Dann sagst Du nur noch Collection.sort( myBeanList ).

Als Trick kann man den Comparable Beans noch die Möglichkeit einräumen,
nach String oder Integern sortiert zu werden (equals Methode mit instanceof Prüfung).

VG Tim
 

Neue Beiträge

Zurück