einen Vector nach Datum sortieren

Status
Nicht offen für weitere Antworten.

babel

Aktives Mitglied
So guten Morgen, ich stehe da vor einem kleinem Problem und zwar müsste ich einen Vector nach Datum sortieren, welche als String gespeichert sind bsp. : 18.10.1985
könnte mir da jemand helfen? ^^
 

Der Müde Joe

Top Contributor
Das parsen mit dem SimpleDateFormat in ein Date dürfte wohl der einfachere Weg sein ;-)
(da du den String sowieso irgenwie parsen musst)
 
B

bygones

Gast
Das parsen mit dem SimpleDateFormat in ein Date dürfte wohl der einfachere Weg sein ;-)
(da du den String sowieso irgenwie parsen musst)
naja wenn der String fuehrende 0 hat wirds schwierig
Java:
        System.out.println("02.10.1999".compareTo("18.10.1999"));
        System.out.println("02.10.1999".compareTo("18.02.1999"));
ergibt beides mal -1...
 

babel

Aktives Mitglied
also bei mir sah das bis jetzt so aus und es funktionierte, aber wenn ich buchungen durchführe auf ein zurück gelegtes datum dann stimmt nicht mehr und deshalb versuch ich meinen vector zu sortieren.

[highlight="Java"]
public int getTageDiff()
{
vectortage.clear();
fromDate = datum;
toDate = null;

for(int i = 0; i < vectordaten.size(); i++)
{
toDate = (String) vectordaten.get(i);
datumstring = toDate;
letztesdatum = (String) vectordaten.lastElement();

try{
Date date1 = format.parse(fromDate);
Date date2 = format.parse(toDate);
differenztag1tag2 = date2.getTime() - date1.getTime();
differenztage = ((((differenztag1tag2 / 1000) / 60) / 60) / 24);

datumstring = Long.toString(differenztage);
tage = Integer.parseInt(datumstring);

}catch(ParseException ex2){
}
fromDate = toDate;
vectortage.add(tage);
}
// vectortage.add(tage);
return tage;
}
[/highlight]
 

Der Müde Joe

Top Contributor
naja wenn der String fuehrende 0 hat wirds schwierig
Java:
        System.out.println("02.10.1999".compareTo("18.10.1999"));
        System.out.println("02.10.1999".compareTo("18.02.1999"));
ergibt beides mal -1...

hö?

parsen mit SimpleDateFormat

Java:
DateFormat df = new SimpleDateFormat("dd.MM.yyyy");
System.out.println(df.parse("02.10.1999").compareTo(df.parse("18.10.1999")));
System.out.println(df.parse("2.10.1999").compareTo(df.parse("18.10.1999")));
System.out.println(df.parse("2.10.2000").compareTo(df.parse("18.10.1999")));
 
Zuletzt bearbeitet:

Der Müde Joe

Top Contributor
zum sortieren zurück:
Java:
List<String> dates = new ArrayList<String>();
dates.add("02.11.1999");
dates.add("02.10.1999");
dates.add("02.12.1997");
dates.add("02.12.1995");
dates.add("02.12.1999");

DateFormat df = new SimpleDateFormat("dd.MM.yyyy");

List<Date> parsedDates = new ArrayList<Date>(dates.size());
for(String date : dates) {
	Date parsedDate = df.parse(date);
	parsedDates.add(parsedDate);
}
Collections.sort(parsedDates);
for(Date date : parsedDates) {
	System.out.println(df.format(date));
}
 

babel

Aktives Mitglied
gut danke euch allen :D es funktioniert! ^^
und zwar hab ich meine methode getTageDiff so gelassen wie sie ist aber! hab beim init Datenbank beim füllen des vectors es umgeschrieben und es funktioniert :D gratz!

[highlight="Java"]
...
while(rs.next())
{
System.out.println("Sie haben Werte in der Datenbank! ");
id = rs.getInt(1);
setId(id);
vectorid.add(id);
dates.add(rs.getString(2));
betrag = rs.getInt(3);
vectorgebuchtvon.add(rs.getString(4));
vectorbuchungen.add(betrag);
}

List<Date> parsedDates = new ArrayList<Date>(dates.size());
for(String date : dates) {
Date parsedDate;
try {
parsedDate = format.parse(date);
parsedDates.add(parsedDate);
} catch (ParseException e) {
e.printStackTrace();
}
}
Collections.sort(parsedDates);
for(Date date : parsedDates) {
vectordaten.add(format.format(date));
}

getTageDiff();
...
[/highlight]
 

babel

Aktives Mitglied
vielleicht doch ein neues problem :( also ich ordne zwar jetzt nach datum aber mein problem ist jetzt das die beträge und gebuchtvon nicht dazu passen, weil ich sie alle einzeln hinzufüge... wie könnte ich das am besten lösen? oder vielleicht an ein objekt binden?
 

babel

Aktives Mitglied
also bis jetzt sieht es bei mir so aus:
[highlight="Java"]
while(rs.next())
{
System.out.println("Sie haben Werte in der Datenbank! ");
TransaktionsDaten trans = new TransaktionsDaten();
trans.setId(rs.getInt(1));
trans.setDatum(rs.getString(2));
trans.setTransaktionsBetrag(rs.getInt(3));
trans.setTransaktionGebuchtVon(rs.getString(4));
datenvontranskationen.add(trans);
zaehler++;
}

List<Date> parsedDates = new ArrayList<Date>(zaehler);

for(TransaktionsDaten date : datenvontranskationen) {
Date parsedDate;
try {
// parsedDate = format.parse(date.toString());
parsedDate = format.parse(date.getDatum());
parsedDates.add(parsedDate);
} catch (ParseException e) {
e.printStackTrace();
}
}
Collections.sort(parsedDates);
for(Date date : parsedDates) {
vectordaten.add(format.format(date));
}
[/highlight]
nur wie schaff ich das die restlichen daten zu den Datum passen?
 

Der Müde Joe

Top Contributor
Lass deine Klasse comparable implementieren und benutze das Datum darin, um zu sortieren.
Mach dann ein Collections.sort auf deine Klasse.
 

babel

Aktives Mitglied
also comparable hab ich in der klasse TransaktionsDaten implementiert und jetzt steht mir die methode zur verfügung

[highlight="Java"]
public int compareTo(Object o) {

return 0;
}
[/highlight]
aber ich weiss garnet nach was ich vergleichen soll ...
 

babel

Aktives Mitglied
also so sieht es bei mir erstmal aus... bin ich nah dran? oder weit weit weg? ^^ nur das problem ist der meckert aus irgendeinem grund "Cannot invoke compareTo(int) on the primitive type int" beim vergleich getId() und getTransaktionsBetrag()

[highlight="Java"]
public int compareTo(TransaktionsDaten o)
{
int result = 0;

result = this.getId().compareTo(o.getId());
if (result != 0)
{
return result;
}
result = this.getDatum().compareTo(o.getDatum());
if (result != 0)
{
return result;
}
result = this.getTransaktionsBetrag().compareTo(o.getTransaktionsBetrag());
if (result != 0)
{
return result;
}

result = this.getTransaktionGebuchtVon().compareTo(o.getTransaktionGebuchtVon());

if (result != 0)
{
return result;
}
}
[/highlight]
 

Landei

Top Contributor
Wenn du zuerst nach Datum sortieren willst, muss der Datumsvergleich natürlich als erstes kommen.

Zwei ints a und b vergleicht man (zumindest solange sie deutlich kleiner als 2^32 sind) mit result = a - b;
Ganz korrekt wäre result = a < b ? -1 : a > b ? 1 : 0;
 

babel

Aktives Mitglied
so hab jetzt vieles probiert und es sieht schonmal nicht schlecht aus und zwar hab ich einen eigenen comparator erstellt und ich lass meine liste sortieren, nur! mein problem ist halt er sortiert nach tagen, dann monaten und dann jahren. Das heißt ich bekomm so ein ergebnis: 01.01.2009,01.01.2010, 01.10.2009, 01.11.2010, 06.03.2009, 06.06.2010 und ich will ja das er mir erst nach tage dann nach monate und zuletz nach jahre sortiert so sieht mein comparator aus:
[highlight="Java"]
public class TransaktionsDatumComparator implements Comparator<TransaktionsDaten> {

@Override
public int compare(TransaktionsDaten b1, TransaktionsDaten b2) {
if (b1 == null && b2 != null) {
return 1;
}
else if (b1 != null && b2 == null) {
return -1;
}
else if (b1 == null && b2 == null) {
return 0;
}
return b1.getDatum().compareTo(b2.getDatum());
}
}
[/highlight]
 
S

SlaterB

Gast
um das Parsen der Strings kommst du nicht herum,
das kennst du ja schon

die speicherst du dann anstelle der Strings oder meinetwegen unter einem anderen Attribut und sortierst danach:
return b1.getDatumNuAberEchtEy().compareTo(b2.getDatumNuAberEchtEy());
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Werte einer Spalte aus DB in einen Vector schreiben Java Basics - Anfänger-Themen 15
babel Einen Vector/Liste mit Daten prüfen Java Basics - Anfänger-Themen 31
R fehler beim incrementellen schreiben in einen vector Java Basics - Anfänger-Themen 11
N Objekte in einen Vector packen oder nicht? Java Basics - Anfänger-Themen 3
N Properties in einen Vector Java Basics - Anfänger-Themen 6
G Zahlen in einen Vector sortieren Java Basics - Anfänger-Themen 2
P Txt-Datei in einen Vector einlesen. Java Basics - Anfänger-Themen 6
W Kann ich in einer Methode einen Vector zurückgeben? Java Basics - Anfänger-Themen 2
M Einen Vector wirklich kopieren WIE GEHT DAS ??? Java Basics - Anfänger-Themen 7
T Daten aus einer .csv Datei in einen Vector einlesen Java Basics - Anfänger-Themen 3
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
S Timer vs ExecutorService: jeden Sonntag um 14.00 Uhr einen Task starten..? Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
X wie bekomme ich durch Eingabeaufforderung definierte double in einen Befehl, welcher 3 erwartete double braucht? Java Basics - Anfänger-Themen 3
P Gibt es einen anderen Weg um "{}" in IntelliJ zu schreiben? Java Basics - Anfänger-Themen 5
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
F Hat es noch einen Sinn, alte Versionen zu lernen Java Basics - Anfänger-Themen 45
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
N Kann man einen Iterator nur einmal verwenden Java Basics - Anfänger-Themen 5
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
FireHorses Einen Command erst nach einer Chateingabe aktivieren Java Basics - Anfänger-Themen 1
F Wie kann ich eine Funktion schreiben, die nur in bestimmten Fällen einen Wert zurückgibt? Java Basics - Anfänger-Themen 5
berserkerdq2 Brauche ich while != -1, wenn ich immer einen BufferedReader verwende? Java Basics - Anfänger-Themen 8
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
N Gibt es hierfür einen Shortcut Java Basics - Anfänger-Themen 5
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
K Wie verneine ich einen Regex? Java Basics - Anfänger-Themen 2
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
O Ich ahbe einen char und diesen soll ich bei .matches prüfen, also ob der char in meiner Zeichenkette vorhanden ist, wie mache ich das? Java Basics - Anfänger-Themen 9
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
Poppigescorn Mithilfe einer Arrayliste einen Notenspiegel ausgeben Java Basics - Anfänger-Themen 12
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
L GUI- wie cancel ich einen Timer? Java Basics - Anfänger-Themen 10
S Aus verschachtelter ArrayList auf einen Wert zugreifen Java Basics - Anfänger-Themen 4
LetsSebi Methode, die einen arry von objekten speichert in einer datei Java Basics - Anfänger-Themen 6
Devin Wo kann man einen Java Lehrplan finden? Java Basics - Anfänger-Themen 5
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
S First Time Mave: Wie ergänze ich einen Source-Folder? Java Basics - Anfänger-Themen 10
M Pfadprobleme - Zugriff auf einen Ordner im Workspace Java Basics - Anfänger-Themen 17
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
P Methode die eigentlich einen Scanner benötigt mit toString() Java Basics - Anfänger-Themen 5
S Erste Schritte Button einen Wert zuweisen & diesen ausgeben Java Basics - Anfänger-Themen 2
M Auf einen Array innerhalb eines Objekts zugreifen Java Basics - Anfänger-Themen 5
V_Fynn03 Erste Schritte Einen Wert in ein TextField einfügen aus einer anderen Klasse Java Basics - Anfänger-Themen 3
J Hat jemand einen Lösungsansatz für diese Aufgabe? Java Basics - Anfänger-Themen 1
F Hilfe für einen Anfänger! Java Basics - Anfänger-Themen 4
O Ziehen im Array um einen Schritt in eine einzige beliebige Richtung Java Basics - Anfänger-Themen 5
N Wie kann ich einen String wieder zusammensetzen und ausgeben lassen? Java Basics - Anfänger-Themen 9
T Fehlermeldung beim Versuch, einen String einzulesen Java Basics - Anfänger-Themen 4
J Wie kann ich z.B. einem int-Wert einen String-Wert zuweisen? Java Basics - Anfänger-Themen 2
steven789hjk543 Kann man mit Java und Eclipse einen Virus programmieren? Java Basics - Anfänger-Themen 13
D Eingabe einscannen, ohne vorher einen Datentypen anzugeben? Java Basics - Anfänger-Themen 1
T Einen Stern malen Java Basics - Anfänger-Themen 32
T Einen Stern malen Java Basics - Anfänger-Themen 2
L Files verschieben in einen Ordner Java Basics - Anfänger-Themen 87
A Mit JComboBox Ergebnis einen Integer aus einer anderen Klasse aufrufen. Java Basics - Anfänger-Themen 2
J Mit for Schleife einen String Rückwärts befüllen Java Basics - Anfänger-Themen 9
J Einen Buttonklick in Label anzeigen Java Basics - Anfänger-Themen 6
S Gibt es einen guten kostenlosen Online-kurs Java Basics - Anfänger-Themen 2
W Wie programmiere ich einen Potenzrechner? Java Basics - Anfänger-Themen 5
B ArrayList besitzt einen Wert zu wenig Java Basics - Anfänger-Themen 16
B Prüfen, ob es schon einen Termin gibt in einem Zeitraum Java Basics - Anfänger-Themen 5
B Wie instanzisiert man einen Cursor richtig? Java Basics - Anfänger-Themen 3
S Interface (WindowBuilder) Panels in einen Frame einfügen Java Basics - Anfänger-Themen 10
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
C Wie erstellt man einen Timer/Delay? Java Basics - Anfänger-Themen 1
C Wie kann ich einen User Input mit einer If-Anweisung verbinden? Java Basics - Anfänger-Themen 5
J Guten tag, Ich hoffe ihr habt einen schönen Sonntag und könnt mir helfen Java Basics - Anfänger-Themen 2
D Methoden 2 TextWatcher auf einen EditText Java Basics - Anfänger-Themen 4
I Datentypen input.nextCharAt(0) wirft einen Fehler Java Basics - Anfänger-Themen 3
C In einer Methode einen Array zurückgeben Java Basics - Anfänger-Themen 2
S Bestehendes Java Programm, einen festen Wert ändern Java Basics - Anfänger-Themen 17
F Variablen If else: Einer Variable einen Wert hinzufügen oder so? Java Basics - Anfänger-Themen 6
R Übergeben eines Array Strings an einen Spinner Java Basics - Anfänger-Themen 4
Bluedaishi Einen Betrag X auf X Tage verteilen Java Basics - Anfänger-Themen 14
D Einen Wert unter einen ActionListener weitergeben Java Basics - Anfänger-Themen 1
J In Java einen Ton erzeugen Java Basics - Anfänger-Themen 8
C Variablen von einem JFrame in einen anderen übertragen Java Basics - Anfänger-Themen 3
V Arrays die einen Termin speichen Java Basics - Anfänger-Themen 5
G Wie gebe ich einen Dateipfad in RandomAccessFile an? Java Basics - Anfänger-Themen 2
R Wie kann ich einen Objekt zu Instanzvariable speichern ? Java Basics - Anfänger-Themen 10
F In LinkedList einen Wert ersetzen oder neu einfügen Java Basics - Anfänger-Themen 7
S Das Anführungszeichen(") Zeichen in einen String setzen Java Basics - Anfänger-Themen 1
P Einen String mittig zeichnen? Java Basics - Anfänger-Themen 1
J Erste Schritte Wie kann ich einen String in eine If einbauen :)? Java Basics - Anfänger-Themen 12
G Wie kann ich einem StringBuilder einen int Wert formatiert hinzufügen? Java Basics - Anfänger-Themen 8
P Einen Ordner mit Dateien hochladen [FTP] Java Basics - Anfänger-Themen 2
OlafHD Einen String an eine Klasse übergeben Java Basics - Anfänger-Themen 2
OlafHD Gibt es einen Laufbalken? Java Basics - Anfänger-Themen 2
Silvascus Inhalt eines externen Textdokuments an einen String übergeben Java Basics - Anfänger-Themen 2
B OOP Über einen AVL-Baum iterieren (NullPointer) Java Basics - Anfänger-Themen 5
G Erste Schritte Wie kann ich einen zurückgegebenen Wert ausgeben Java Basics - Anfänger-Themen 4
W Wie kann man diesen Code in einen Code umwandeln, der folgendes können sollte? Java Basics - Anfänger-Themen 1
J App auf einen Webserver laden Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben