probleme beim sortieren einer ArrayList

Status
Nicht offen für weitere Antworten.

grill

Mitglied
hallo zusammen

mein problem wird zwar überall beschrieben, ich bin jedoch zu blöd um das zu verstehen.

ich habe eine JSP seite auf welcher ich eine liste (ArrayList) von requestLogs einzeige. nun sollen diese log nachrichten nach datum, name, status und so weiter sortiert werden können.
ich habe also über jeder spalte ein link mit dem jeweiligen titel. wenn man den link anklick soll die arraylist dem entsprechend sortiert werden.
nun, wie funktioniert das? ich habe viel über comparatoren gelesen, verstehen aber nicht wirklich wie das funktionieren soll.

wäre super wenn mir da jemand helfen könnte.

danke und gruss
grill
 

jpp

Mitglied
Ich nehme mal an, Dein Problem ist nicht das Implementieren des Servlets, sondern das Sortieren einer vorhandenen ArrayList.

Deine ArrayList enthält Instanzen einer bestimmten Klasse, ich nenne sie mal Row, die Du nach verschiedenen Kriterien sortieren willst. Also hilft es Dir nichts, wenn Row Comparable implementiert. Statt dessen kannst Du Dir einen java.util.Comparator für jede sortierbare Spalte implementieren. Dein Servlet muss dann je nach Argument einen Comparator auswählen und damit die Liste sortieren. Wenn Du Deine Comparatoren z.B. in einer Map verwaltest, könnte das so aussehen:
Code:
Comparator comparator = comparators.get(aRequest.getParameter("sortcol"));
Collections.sort(list, comparator);

Die Comparatoren arbeiten alle auf Row, vergleichen jedoch unterschiedliche Eigenschaften.
 

grill

Mitglied
ok, aber wie implementiere ich einen solchen comparator? wie funktioniert das? probiere mich zwar schlau zu machen, aber irgendwie finde ich keine anhaltspunkte...
 
B

Beni

Gast
In der API steht ziemlich viel zu den Comparatoren.

Aber als Minibeispiel, anhand einer Liste von Integern:
Code:
// Eine Liste
List<Integer> list = ...

// der Comparator
Comparator<Integer> comparator = new Comparator<Integer>(){
  public int compare( Integer a, Integer b ){
    if( a < b )
      return -1;
    if( a > b )
      return 1;
    return 0;
  }
}

// und schliesslich
Collections.sort( list, comparator );
 

grill

Mitglied
ok, aber wie mache ich das nun wenn ich eine ArrayListe von Autos habe? zum beispielt

Auto1
--> Farbe = Blau
--> TopSpeed = 200
--> Marke = Audi

Auto2
--> Farbe = Rot
--> TopSpeed = 180
--> Marke = BMW

Auto3
--> Farbe = Gelb
--> TopSpeed = 195
--> Marke = VW

Auto4
--> Farbe = Rot
--> TopSpeed = 150
--> Marke = Audi

nun, wie müsste ich nun einen comparator für "Farbe" implementieren?

danke für eure hilfe!
 

Illuvatar

Top Contributor
Du hast halt nen
Code:
Comparator<Auto> comparator = new Comparator<Auto>(){ 
  public int compare( Auto a, Auto b ){ 
    
  } 
}
Was in compare passiert, musst du wissen, jenachdem welche Farbe zuerst sein soll.
 

grill

Mitglied
ok, aber was bedeuted nun dieses <Auto> nach Comparator? das kann ich so ja nicht 1 zu 1 übernehmen? also wenn ich Comparator<MyObject> myObjectComparator = new Comparator<MyObject>() {}; schreibe dann funktioniert das so nicht.

wie muss ich das übernehmen? ich bin nicht wirklich DER java crack ;-)

danke jungs!
 

Illuvatar

Top Contributor
Das ist Java5 code, in älteren Versionen müsste das so heißen:
Code:
Comparator comparator = new Comparator(){ 
  public int compare( Object a, Object b ){ 
    Auto a1 = (Auto)a;
    Auto a2 = (Auto)b;
  } 
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
B Compiler-Fehler Probleme beim Kompilieren mit Jsoup Allgemeine Java-Themen 8
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
B Input/Output Probleme beim Ausführen von Shell-Befehlen mit Java Allgemeine Java-Themen 28
J Probleme beim einbinden von Zip4j library Allgemeine Java-Themen 6
F SQLite mit Java / Probleme beim INSERT Befehl Allgemeine Java-Themen 4
S Eclipse Probleme beim Implementieren / Ausführen von jUnit 5-Test Suites Allgemeine Java-Themen 14
A Probleme beim Verstehen einer Aufgabenstellung Allgemeine Java-Themen 11
perlenfischer1984 Probleme beim Mocken Allgemeine Java-Themen 6
R probleme beim starten von jar unter linux Allgemeine Java-Themen 2
M Probleme beim rechnen, bei Zahlen mit führenden Nullen. Allgemeine Java-Themen 7
E JCuda-0.6.5 Probleme beim ausführen der Datei Allgemeine Java-Themen 0
W JNDI - LDAP - Probleme beim editieren von Usern Allgemeine Java-Themen 0
N Zahlensysteme umrechnen; Probleme beim Umwandeln Allgemeine Java-Themen 4
A Probleme beim auslesen von Quelltext (HTML) Allgemeine Java-Themen 5
M 3D-Grafik Probleme beim drehen von Objekten Allgemeine Java-Themen 9
S Probleme beim Auslesen einer Liste Allgemeine Java-Themen 8
H Probleme beim Erstellen einer txt. Datei Allgemeine Java-Themen 7
S Probleme beim Start von jar Datein Allgemeine Java-Themen 15
S Probleme beim Compilen Allgemeine Java-Themen 8
N Probleme mit Umlauten beim Einlesen Allgemeine Java-Themen 6
P Probleme beim Signieren Allgemeine Java-Themen 2
D Probleme beim schreiben / lesen in TreeMap Allgemeine Java-Themen 9
S Probleme beim Anzeigen des Dateiinhalts Allgemeine Java-Themen 6
O Probleme beim vergleichen von 2 Datumsangaben Allgemeine Java-Themen 2
hdi Probleme beim Rechnen mit BigDecimal Allgemeine Java-Themen 5
V Probleme beim Drucken mehrerer PDF's Allgemeine Java-Themen 17
E Probleme beim Umstieg auf Version 1.6.0_12 Allgemeine Java-Themen 4
J Java Plugin probleme beim Laden? Allgemeine Java-Themen 3
V Probleme beim Lesen mit readObject -> InvalidClassExcepti Allgemeine Java-Themen 3
D Probleme beim Umstellen von iText 1.4.4 auf Version 2.1.2 Allgemeine Java-Themen 5
G Probleme beim Sichern von Properties Allgemeine Java-Themen 2
W Probleme beim Ausführen einer Java Klasse auf Kommandozeile Allgemeine Java-Themen 17
S Probleme beim Einstieg Allgemeine Java-Themen 3
F Probleme beim speichern einer xml datei mit jdom Allgemeine Java-Themen 5
D Probleme beim FAQ (JTextField: Dokumentarten) Allgemeine Java-Themen 5
B probleme beim compilen/decompilen Allgemeine Java-Themen 4
G Probleme beim Mail-Api mit BCC Allgemeine Java-Themen 2
M Probleme beim ausführen meiner Klasse Allgemeine Java-Themen 8
G Probleme beim Entzippen Allgemeine Java-Themen 4
G jdk1.5 Probleme beim Installieren unter Win Allgemeine Java-Themen 2
J Probleme mit der CommApi beim ProgrammStart über Konsole Allgemeine Java-Themen 2
P Probleme beim Einlesen einer TXT/CSV-Datei aus einem JAR Allgemeine Java-Themen 7
C Probleme beim Starten eines Java-Programms Allgemeine Java-Themen 2
E Probleme beim Zugriff auf verschachtelte Vektoren Allgemeine Java-Themen 16
G Probleme beim Verbinden auf einen Notes 5 Server Allgemeine Java-Themen 3
S Umstellung von File auf Path - Probleme mit Stream Allgemeine Java-Themen 5
C Probleme mit javax.mail.Session Allgemeine Java-Themen 8
M tomcat probleme Allgemeine Java-Themen 1
N Division macht Probleme Allgemeine Java-Themen 14
MarvinsDepression Probleme mit relativem Dateipfad Allgemeine Java-Themen 1
G Geotools Probleme nach PC-Wechsel Allgemeine Java-Themen 6
nibe1501 GUI Probleme Allgemeine Java-Themen 16
C Probleme mit dem WindowBuilder Allgemeine Java-Themen 3
P Selenium . Probleme ein Iron Icon Element anzusprechen Allgemeine Java-Themen 2
K VisualVM Profiling Remote Probleme Allgemeine Java-Themen 1
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
M Probleme bei Eclipse wenn ich entpacke Allgemeine Java-Themen 15
D Regex Probleme Allgemeine Java-Themen 2
M Probleme jar datei. Allgemeine Java-Themen 2
L Vererbung Verständnis Probleme Vererbung Allgemeine Java-Themen 2
Dann07 Probleme mit OpenAL Allgemeine Java-Themen 0
V Compiler-Fehler Online Compiler Probleme Allgemeine Java-Themen 4
M Probleme mit Negamax-Algorithmus Allgemeine Java-Themen 29
M Probleme mit BigDecimal Allgemeine Java-Themen 1
T Probleme mit NumberFormat Allgemeine Java-Themen 5
J Probleme exe-Start mit Task Scheduler Allgemeine Java-Themen 1
F Variablen Palindromzahl (Probleme mit Methode) Allgemeine Java-Themen 9
K Data Konverter - Probleme mit Byte[] Kodierung Allgemeine Java-Themen 3
T Probleme mit dem Pfad zum Propertie file Allgemeine Java-Themen 7
H Swing HashMap zu Tabelle macht mir Probleme Allgemeine Java-Themen 4
Neoline Interpreter-Fehler Probleme mit Arrays.toString Allgemeine Java-Themen 7
J Erste Schritte Probleme mit der Hauptklasse Allgemeine Java-Themen 14
J Tetris Probleme bei Klassen Allgemeine Java-Themen 14
J MinMax VierGewinnt Probleme Allgemeine Java-Themen 22
J Probleme mit CodeCoverage und Lombok Equals Allgemeine Java-Themen 1
R Snake Probleme Allgemeine Java-Themen 2
RalleYTN 3D Objekt Translation basierend auf Rotation (Probleme mit Z Rotation) Allgemeine Java-Themen 0
Bluedaishi Druck Probleme mit PDF dateien Allgemeine Java-Themen 4
G Ant Probleme bei einer Installation die Apache ant+ivy verwendet Allgemeine Java-Themen 14
E TableView Probleme Allgemeine Java-Themen 7
S Kaffemaschine Programmierung Probleme Allgemeine Java-Themen 2
K Threads Runtime und Process Probleme Allgemeine Java-Themen 3
S Probleme mit unterschiedlichen Java-Versionen (Mac OS X 10.11) Allgemeine Java-Themen 0
S Event Handling keyPressed()-Probleme Allgemeine Java-Themen 2
VfL_Freak Große und seltsame Probleme nach Java-Update auf V1.8.0_91 Allgemeine Java-Themen 3
P Probleme mit Grafik (Java) Allgemeine Java-Themen 6
H Probleme mit DAY_OF_WEEK Allgemeine Java-Themen 4
Arif Probleme mit NullPointerException Allgemeine Java-Themen 2
E Probleme mit nextInt() und Exception Allgemeine Java-Themen 35
Streeber Probleme mit AWT-EventQueue: ArrayList Elemente hinzufügen Allgemeine Java-Themen 1
D Performance-Probleme mit Joda-Time Allgemeine Java-Themen 3
RalleYTN Probleme mit Encrypting Allgemeine Java-Themen 10
M Probleme mit Schriftarten PDFBox Allgemeine Java-Themen 3
J Probleme mit der Java-Runtime Allgemeine Java-Themen 10
G Probleme mit BufferedWriter und URL Allgemeine Java-Themen 4
S Probleme mit meinem MacBook Pro DRINGEND HILFE erbeten! Allgemeine Java-Themen 17
Androbin Interpreter-Fehler Probleme mit Rekursion - StackOverflowError Allgemeine Java-Themen 8
M Runtime.exec() verursacht auf manchen Systemen Probleme - Ursache unklar Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben