如何使用降序排序列表(基于薪水是一个长值)
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;
}
}
答案 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());