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));