Quantcast
Viewing latest article 16
Browse Latest Browse All 19

Answer by Jon Skeet for How to sort List of objects by some property

Either make ActiveAlarm implement Comparable<ActiveAlarm> or implement Comparator<ActiveAlarm> in a separate class. Then call:

Collections.sort(list);

or

Collections.sort(list, comparator);

In general, it's a good idea to implement Comparable<T> if there's a single "natural" sort order... otherwise (if you happen to want to sort in a particular order, but might equally easily want a different one) it's better to implement Comparator<T>. This particular situation could go either way, to be honest... but I'd probably stick with the more flexible Comparator<T> option.

EDIT: Sample implementation:

public class AlarmByTimesComparer implements Comparator<ActiveAlarm> {  @Override  public int compare(ActiveAlarm x, ActiveAlarm y) {    // TODO: Handle null x or y values    int startComparison = compare(x.timeStarted, y.timeStarted);    return startComparison != 0 ? startComparison                                : compare(x.timeEnded, y.timeEnded);  }  // I don't know why this isn't in Long...  private static int compare(long a, long b) {    return a < b ? -1         : a > b ? 1         : 0;  }}

Viewing latest article 16
Browse Latest Browse All 19

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>