Quantcast
Viewing all articles
Browse latest Browse all 19

Answer by Arvind Kumar Avinash for How to sort List of objects by some property

Java-8 solution using Stream API:

A. When timeStarted and timeEnded are public (as mentioned in the requirement) and therefore do not (need to) have public getter methods:

List<ActiveAlarm> sorted =     list.stream()        .sorted(Comparator.comparingLong((ActiveAlarm alarm) -> alarm.timeStarted)                        .thenComparingLong((ActiveAlarm alarm) -> alarm.timeEnded))        .collect(Collectors.toList());

B. When timeStarted and timeEnded have public getter methods:

List<ActiveAlarm> sorted =     list.stream()        .sorted(Comparator.comparingLong(ActiveAlarm::getTimeStarted)                        .thenComparingLong(ActiveAlarm::getTimeEnded))        .collect(Collectors.toList());

If you want to sort the original list itself:

A. When timeStarted and timeEnded are public (as mentioned in the requirement) and therefore do not (need to) have public getter methods:

list.sort(Comparator.comparingLong((ActiveAlarm alarm) -> alarm.timeStarted)                    .thenComparingLong((ActiveAlarm alarm) -> alarm.timeEnded));

B. When timeStarted and timeEnded have public getter methods:

list.sort(Comparator.comparingLong(ActiveAlarm::getTimeStarted)                    .thenComparingLong(ActiveAlarm::getTimeEnded));

Viewing all articles
Browse latest Browse all 19

Trending Articles