Hallo zusammen!
Ich habe eine Map in der ich zu einem bestimmten Key (serialNr) einen Vector als Value habe.
Da ich nun mehrere Werte in diesem Vector gespeichert habe (auch verschiedene Datentypen int, String, Date) möchte ich den Vector sortieren.
Es soll nach der Uhrzeit (Date (mit SimpleDateFormat)) sortiert werden.
Laut Google kann ich die Sortierung mit einem Comperator machen.
Allerdings habe ich nach längerer Suche noch keine Lösung für mein Problem gefunden wie ich den Vector aufrufen kann und nach der Uhrzeit sortieren kann.
2 Files die Komponenten mit dem gleichen Key enthalten und somit in dem selben Vector gespeichert werden.
File 1:
LogEintrag [stationsnummer=0, status=freigegeben, uhrzeit=Mon Feb 06 16:22:38 CET 2012,
LogEintrag [stationsnummer=0, status=Update, uhrzeit=Fri Jul 27 01:16:24
CEST 2012,
File 2:
LogEintrag [stationsnummer=0, status=freigegeben, uhrzeit=Mon Feb 06 17:22:38 CET 2012,
LogEintrag [stationsnummer=0, status=Update, uhrzeit=Fri Jul 27 02:16:24 CEST 2012,
Ausgabe bisher:
LogEintrag [stationsnummer=0, status=freigegeben, uhrzeit=Mon Feb 06 16:22:38 CET 2012,
LogEintrag [stationsnummer=0, status=Update, uhrzeit=Fri Jul 27 01:16:24
CEST 2012,
LogEintrag [stationsnummer=0, status=freigegeben, uhrzeit=Mon Feb 06 17:22:38 CET 2012,
LogEintrag [stationsnummer=0, status=Update, uhrzeit=Fri Jul 27 02:16:24 CEST 2012,
Soll-Ausgabe:
LogEintrag [stationsnummer=0, status=freigegeben, uhrzeit=Mon Feb 06 16:22:38 CET 2012,
LogEintrag [stationsnummer=0, status=freigegeben, uhrzeit=Mon Feb 06 17:22:38 CET 2012,
LogEintrag [stationsnummer=0, status=Update, uhrzeit=Fri Jul 27 01:16:24
CEST 2012,
LogEintrag [stationsnummer=0, status=Update, uhrzeit=Fri Jul 27 02:16:24 CEST 2012,
[B]
Mein bisheriger Code der Klasse in der das Sortieren stattfinden soll:[/B]
[JAVA=42]
package de.odr.main;
import java.util.Comparator;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
import java.util.Vector;
import java.util.Collections;
public class EintraegeSortieren implements Comparator<EintraegeSortieren> {
Map<String, Vector<LogEintrag>> eintraegeSortieren = new TreeMap<String, Vector<LogEintrag>>();
public EintraegeSortieren(Vector<LogEintrag>logEintraege){
for(LogEintrag le : logEintraege){
if(le.serienNr!=null){
//System.out.println(le.toString());
if(eintraegeSortieren.containsKey(le.serienNr)==false){
Vector <LogEintrag> v = new Vector <LogEintrag>();
v.add(le);
eintraegeSortieren.put(le.serienNr, v);
}
else{
Vector<LogEintrag>vle = eintraegeSortieren.get(le.serienNr);
vle.add(le);
}
}
}
this.print();
}
public void print(){
Iterator<String> itr = eintraegeSortieren.keySet().iterator();
while (itr.hasNext()) {
//System.out.println("str = " + itr.next());
Vector <LogEintrag> logEintraege = eintraegeSortieren.get(itr.next());
System.out.println("\n");
for(LogEintrag le : logEintraege){
System.out.println(le.toString());
}
}
}
@Override
public int compare(EintraegeSortieren o0, EintraegeSortieren o1) {
return 0;
}
}
[/code]
Ich habe eine Map in der ich zu einem bestimmten Key (serialNr) einen Vector als Value habe.
Da ich nun mehrere Werte in diesem Vector gespeichert habe (auch verschiedene Datentypen int, String, Date) möchte ich den Vector sortieren.
Es soll nach der Uhrzeit (Date (mit SimpleDateFormat)) sortiert werden.
Laut Google kann ich die Sortierung mit einem Comperator machen.
Allerdings habe ich nach längerer Suche noch keine Lösung für mein Problem gefunden wie ich den Vector aufrufen kann und nach der Uhrzeit sortieren kann.
2 Files die Komponenten mit dem gleichen Key enthalten und somit in dem selben Vector gespeichert werden.
File 1:
LogEintrag [stationsnummer=0, status=freigegeben, uhrzeit=Mon Feb 06 16:22:38 CET 2012,
LogEintrag [stationsnummer=0, status=Update, uhrzeit=Fri Jul 27 01:16:24
CEST 2012,
File 2:
LogEintrag [stationsnummer=0, status=freigegeben, uhrzeit=Mon Feb 06 17:22:38 CET 2012,
LogEintrag [stationsnummer=0, status=Update, uhrzeit=Fri Jul 27 02:16:24 CEST 2012,
Ausgabe bisher:
LogEintrag [stationsnummer=0, status=freigegeben, uhrzeit=Mon Feb 06 16:22:38 CET 2012,
LogEintrag [stationsnummer=0, status=Update, uhrzeit=Fri Jul 27 01:16:24
CEST 2012,
LogEintrag [stationsnummer=0, status=freigegeben, uhrzeit=Mon Feb 06 17:22:38 CET 2012,
LogEintrag [stationsnummer=0, status=Update, uhrzeit=Fri Jul 27 02:16:24 CEST 2012,
Soll-Ausgabe:
LogEintrag [stationsnummer=0, status=freigegeben, uhrzeit=Mon Feb 06 16:22:38 CET 2012,
LogEintrag [stationsnummer=0, status=freigegeben, uhrzeit=Mon Feb 06 17:22:38 CET 2012,
LogEintrag [stationsnummer=0, status=Update, uhrzeit=Fri Jul 27 01:16:24
CEST 2012,
LogEintrag [stationsnummer=0, status=Update, uhrzeit=Fri Jul 27 02:16:24 CEST 2012,
[B]
Mein bisheriger Code der Klasse in der das Sortieren stattfinden soll:[/B]
[JAVA=42]
package de.odr.main;
import java.util.Comparator;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
import java.util.Vector;
import java.util.Collections;
public class EintraegeSortieren implements Comparator<EintraegeSortieren> {
Map<String, Vector<LogEintrag>> eintraegeSortieren = new TreeMap<String, Vector<LogEintrag>>();
public EintraegeSortieren(Vector<LogEintrag>logEintraege){
for(LogEintrag le : logEintraege){
if(le.serienNr!=null){
//System.out.println(le.toString());
if(eintraegeSortieren.containsKey(le.serienNr)==false){
Vector <LogEintrag> v = new Vector <LogEintrag>();
v.add(le);
eintraegeSortieren.put(le.serienNr, v);
}
else{
Vector<LogEintrag>vle = eintraegeSortieren.get(le.serienNr);
vle.add(le);
}
}
}
this.print();
}
public void print(){
Iterator<String> itr = eintraegeSortieren.keySet().iterator();
while (itr.hasNext()) {
//System.out.println("str = " + itr.next());
Vector <LogEintrag> logEintraege = eintraegeSortieren.get(itr.next());
System.out.println("\n");
for(LogEintrag le : logEintraege){
System.out.println(le.toString());
}
}
}
@Override
public int compare(EintraegeSortieren o0, EintraegeSortieren o1) {
return 0;
}
}
[/code]
Zuletzt bearbeitet: