基于多个属性对ArrayList进行排序

Tha*_*ham 15 java sorting

我有一个对象的ArrayList.该对象包含属性datevalue.所以我想对它上面的对象进行排序date,对于我想要对它们进行排序的所有对象value.我怎样才能做到这一点?

har*_*rto 22

实现自定义Comparator,然后使用Collections.sort(List, Comparator).它可能看起来像这样:

public class FooComparator implements Comparator<Foo> {
    public int compare(Foo a, Foo b) {
        int dateComparison = a.date.compareTo(b.date);
        return dateComparison == 0 ? a.value.compareTo(b.value) : dateComparison;
    }
}

Collections.sort(foos, new FooComparator());
Run Code Online (Sandbox Code Playgroud)