2012-09-24 17 views
6

Ich habe eine ArrayList, die Daten mit einem Format enthält (Satuday, 4 Februar 2012). Wie kann ich diese ArrayList sortieren?Sortierung von Date ArrayList

+1

Was haben Sie getan? zu tun? hast du es versucht? –

+0

Welche Klasse verwenden Sie für Ihre Daten? – idanakav

+0

In welcher Art müssen Sie einen Tag oder ein Datum oder ein Jahr beginnen? – Aerrow

Antwort

14

Dies ist eine der einfachsten Art und Weise,

Collections.sort(<Your Array List>); 
5

Wenn Sie irgendwelche speziellen Anforderungen zu sortieren, während das Sortieren, so dass Sie es tun können Ihren eigenen Comparator durch die Bereitstellung. Zum Beispiel:

//your List 
ArrayList<Date> d = new ArrayList<Date>(); 

//Sorting 
Collections.sort(d, new Comparator<Date>() { 
    @Override 
    public int compare(Date lhs, Date rhs) { 
     if (lhs.getTime() < rhs.getTime()) 
      return -1; 
     else if (lhs.getTime() == rhs.getTime()) 
      return 0; 
     else 
      return 1; 
    } 
}); 

Das Schlüsselelement ist, dass Sie Ihr Date Objekt in Millisekunden konvertieren (mit getTime()) zum Vergleich.

+0

Sonst verwenden Sie einfach Collections.sort (); wie @Aerrow sagte. Termine sind [vergleichbar] (http://docs.oracle.com/javase/6/docs/api/java/util/Date.html#compareTo (java.util.Date)). – titogeo