如何使用降序排序列表(基于工资是一个长值)

时间:2018-03-15 07:19:32

标签: java android comparator

如何使用降序排序列表(基于薪水是一个长值)

class Empl{

    private String name;
    private long salary;

    public Empl(String n, long s){
        this.name = n;
        this.salary = s;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public long getSalary() {
        return salary;
    }
    public void setSalary(long salary) {
        this.salary = salary;
    }

}

4 个答案:

答案 0 :(得分:4)

如果您使用的是Java 8,则可以Stream#sorted使用Comparator#comparingLong,如下所示:

list = list.stream()
        .sorted(Comparator.comparingLong(Empl::getSalary).reversed())
        .collect(toList());

注意.reversed()使用它时,列表是按顺序排序的,否则如果你不使用它,它会按升序排序。

答案 1 :(得分:1)

试试这个:

<强>降序

Collections.sort(modelList, new Comparator<Empl>() {
        @Override
        public int compare(Empl o1, Empl o2) {
            return o2.getSalary().compareTo(o1.getSalary());
        }
});

<强>升序

Collections.sort(modelList, new Comparator<Empl>() {
            @Override
            public int compare(Empl o1, Empl o2) {
                return o1.getSalary().compareTo(o2.getSalary());
            }
});

答案 2 :(得分:0)

使用这种方式

Collections.sort(employeeList, new Comparator<VariationsItem>() {
    @Override
    public int compare(Empl lhs, Empl rhs) {
        return ((Long) rhs.getSalary()).compareTo((Long) lhs.getSalary());
    }
});

答案 3 :(得分:0)

如果您正在使用Java-8,那么您可以直接在列表上调用默认排序方法,提供必要的比较器。

list.sort(Comparator.comparingLong(Empl::getSalary).reversed());