2016-09-27 6 views
-3

Wie diese Comparator-Methode mit Java zu minimieren 8 Eigentlich übergeben ich Liste der WorkingDays, die Liste der Tage Ich brauche Daten in aufsteigender und absteigender Reihenfolge zu sortieren, wie es möglich ist Ich brauche Datum aufsteigendWie minimiert man diese Comparator-Methode mit Java 8

private List<WorkingDays> workingDaysDateSortDesc(List<WorkingDays> workingDays) { 
    Collections.sort(workingDays.get(0).getDays(), new Comparator<Days>() { 
     @Override 
     public int compare(Days o1, Days o2) { 
      if (o1.getDate().get$date() == null || o2.getDate().get$date() == null) 
       return 0; 
      return o2.getDate().get$date().compareTo(o1.getDate().get$date()); 
     } 
    }); 
    return workingDays; 
} 
+0

Bitte verwenden ** Stream API **, wird es Ihnen Vorteile geben und Code mehr sauberer und besser lesbar machen. –

+0

Es ist unklar, welches Ergebnis Sie in Bezug auf 'Null'-Werte wünschen. Können Sie eine Beispieleingabe/-ausgabe veröffentlichen? Was meinst du mit minimieren? – Tunaki

+0

@Tunaki Ich brauche Datum in der Reihenfolge. –

Antwort

0

verwenden Sie einfach Lambda:

private List<WorkingDays> workingDaysDateSortDesc(List<WorkingDays> workingDays) { 
    Collections.sort(workingDays.get(0).getDays(), (Comparator<Days>) (o1, o2) -> { 
     if (o1.getDate().get$date() == null || o2.getDate().get$date() == null) 
      return 0; 
     return o2.getDate().get$date().compareTo(o1.getDate().get$date()); 
    }); 
    return workingDays; 
}