21312
Goto Top

ArrayList sortieren

Hallo zusammen!
Meine Aufgabe ist es eine ArrayList zur sortieren (nach Namen).
Weiß jemand zufällig wie das einfach funktioniert?
Dazu noch eine Frage: Was ist ein Comparator?
Schon mal Danke!
MfG

Content-ID: 23117

Url: https://administrator.de/forum/arraylist-sortieren-23117.html

Ausgedruckt am: 23.12.2024 um 13:12 Uhr

Rakeem2001
Rakeem2001 09.01.2006 um 12:43:49 Uhr
Goto Top
Servus,

also ein Comparator ist eine Vergleichsklasse, dieser übergibst du die zu vergleichenden Werte und legst intern fest, wie sie verglichen werden. Dieser wird deshalb benötigt, weil in einer ArrayList ja alle möglichen Datentypen gespeichert werden.

Diesen Comparator baust Du dann als Prüfwert in Deinen Sortieralgorithmus ein und dann sollte es eigentlich funzen.
Such also am besten nach einem Comparator, baue ihn auf String um und dann kann losgehen. ArrayList biete ja auch Sort Optionen, da bin ich mir aber nicht so sicher, soweit ich das noch weiß brauchst Du dafürt auch den Comparator, hier wird er dann aber einfach übergeben...

Schau doch mal hier: http://www.galileocomputing.de/openbook/javainsel3/javainsel_110000.htm ...

Hoffe es hilft!

Greetz René
gabrielgn
gabrielgn 18.01.2006 um 16:12:46 Uhr
Goto Top
Nur TreeMap ist ein Sorted Collection im Sinne von Smalltalk, es speichert beim Einfügen sortiert und erlaubt daher stets den sortierten Durchlauf ohne zusätzlichen Sortieraufwand.
Bei HashMap und Hashtable muss man ggf. alle Schlüssel oder Werte in ein Array oder ArrayList ausgeben und dieses sortieren, mit Arrays.sort bzw. Collections.sort.
Eine Alternative zu TreeMap sind noch Object und ArrayList. Diese alle kann man sortieren. In beiden kann man - Sortierung vorausgesetzt - mit Arrays.binarySearch bzw. Collections.binarySearch effizient suchen (Direkzugriff per Schlüssel). In ArrayList (List) kann man mit binarySearch auch relativ effizient sortiert einfügen.
Für Object steht binarySearch nur in einer Version zur Verfügung, die das gesamte Array absucht. Wenn man ein Array sukzessive mit binarySearch sortiert füllen will, muß der bisher unbenutzte Rest des Arrays daher geeignet gefüllt sein, mit Maximalwerten bzw. der Sortierordnung. Man gebe besser nach und verwende für den Zweck des sortierten Einfügens ArrayList oder TreeMap.