Java中如何根据对象的字符串值进行排序

new*_*bie 0 java comparison

我有 Java bean 类,我想按 String 类型的一个 bean 属性对这些 bean 列表进行排序。我怎样才能做到这一点?

Jon*_*eet 5

要么让类型本身实现Comparable<Foo>compareTo通过比较两个字符串来实现该方法,要么实现Comparator<Foo>再次通过字符串进行比较的 a 。

使用第一种方法,您就可以Collections.sort()直接使用;与你使用的第二个Collections.sort(collection, new FooComparator());

例如:

public class Foo {
    public String getBar() {
        ...
    }
}

public class FooComparatorByBar implements Comparator<Foo> {
    public int compare(Foo x, Foo y) {
        // TODO: Handle null values of x, y, x.getBar() and y.getBar(),
        // and consider non-ordinal orderings.
        return x.getBar().compareTo(y.getBar());
    }
}
Run Code Online (Sandbox Code Playgroud)