1Danke
ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
1249
1249
EMPFEHLEN
-
16.05.11 10:49 #1
- Registriert seit
- Jun 2009
- Beiträge
- 11
Liebe Forummitglieder,
Ich muss eine ArrayList mit GeoDaten und Timestamps nach Timestamp sortieren. Nach meiner Recherche müsste das mit dem Comperator gehen... Nur leider fehlt mir ein bisschen die Ahnung von den Compare Sachen bzw. kann ich mir das nicht ganz vorstellen wie das in der Theorie aussieht.
Was muss ich also tun? Ich bin eig. kein Anfänger mehr aber da hänge ich irgendwie komplett - ich wäre dankbar für ein bisschen Hilfe. Ich weiß es gibt relativ viele Threads dazu - ich will aber auf Nummer sicher gehen und meine eigenen Fragen stellen.
Die Klasse in der ich die ArrayList sortieren will:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
import java.util.*; public class DateSort{ static final Comparator<GeoDaten> GEO_ORDER = new Comparator<GeoDaten>() { public int compare(GeoDaten g1, GeoDaten g2) { return g1.getDate.compareTo(g2.getDate()); //getDate() returns Date() of active GeoObject } }; public static void main(String[] args) { List<GeoDaten>g = getGeoDaten(); //returns ArrayList with Geodata Collections.sort(g, GEO_ORDER); List<GeoDaten> sortedGeodata = g; } }
Meine Fragen:
Ist das alles?
Mit compareTo() bekomm ich die Werte 1 oder -1? Das reicht aus um die ArrayList zu sortieren? Oder muss ich noch was machen?
Danke im Voraus!
lg MartinGeändert von wuaschtikus (16.05.11 um 11:18 Uhr)
-
16.05.11 11:17 #2
- Registriert seit
- Jun 2009
- Beiträge
- 868
Wenn dein Comparator die richtigen Werte ausgibt (hab ich nicht nachgeprüft), dann ist das alles.
Du solltest allerdings in Zeile 6 noch nach g1.getDate die Klammern () für den Methodenaufruf einfügen.
Code java:1
return g1.getDate().compareTo(g2.getDate()); //getDate() returns Date() of active GeoObject
PS: Schau doch mal in die JavaDoc von Comparator und der Methode compareTo() aus dem Interface Comparable. Wenn du dir immer noch unsicher bist, schau mal http://openbook.galileocomputing.de/...sel_09_001.htm und http://openbook.galileocomputing.de/...83dfce865d017e an.Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
16.05.11 11:26 #3
- Registriert seit
- Jun 2009
- Beiträge
- 11
ok und nur zum verständnis - der Comperator liefert NUR die vergleichswerte mit return comperTo() zurück. Das sortieren wird dann von sort() übernommen.
In meiner GeoDaten Klasse muss ich nichts explizit angeben oder deklarieren?
Hier kommt es nur auf die getDate() Methode an, sehe ich das richtig?
-
16.05.11 12:32 #4
- Registriert seit
- Aug 2005
- Ort
- Karlsruhe (Baden-Württemberg)
- Beiträge
- 905
Das ist so korrekt. CompareTo liefert nur <0; =0;>0 zurück. Und sort benutzt dann einen bestimmten Algorithmus (Mergesort) der diese Information benutzt.
Wenn du eine grundsätzliche Sortierung für deine GeoDaten-Klasse machen willst, musst du das Interface Comparable in der Klasse GeoDaten implementieren. Und du solltest dann auch die equals und hashCode-Methode implementieren, damit compareTo == 0 und equals das gleiche Ergebnis liefern.Wäre super wenn ihr euren Code in dieser Form einfügt:
[java]System.out.println("Hello World");[/java]Code java:1
System.out.println("Hello World");
Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
Blog: http://javaeffective.wordpress.com/
-
16.05.11 15:15 #5
- Registriert seit
- Jun 2009
- Beiträge
- 11
Vielen dank dir das wars

kenn mich jetz aus.
Ähnliche Themen
-
ArrayList absteigend sortieren
Von LeeroyJenkins im Forum Java GrundlagenAntworten: 7Letzter Beitrag: 15.05.10, 20:26 -
Sortieren von Klassen in ArrayList
Von mp89 im Forum Algorithmen & Datenstrukturen mit JavaAntworten: 4Letzter Beitrag: 24.03.09, 21:21 -
Day CQ - ArrayList sortieren und filtern
Von aquasonic im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 2Letzter Beitrag: 22.12.06, 15:49 -
Mehrere ArrayList sortieren
Von Sergunja im Forum JavaAntworten: 8Letzter Beitrag: 20.10.04, 12:47 -
ArrayList sortieren
Von mgd-one im Forum .NET ArchivAntworten: 8Letzter Beitrag: 31.01.04, 14:40





Zitieren
Login





