如何使用比较器按降序对列表进行排序(基于薪水,这是一个长值)
How to sort a list using comparator in Descending order (based on salary which is a long value)
如何使用比较器按降序对列表进行排序(基于 long 值的工资)
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;
}
}
试试这个:
降序
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());
}
});
这样使用
Collections.sort(employeeList, new Comparator<VariationsItem>() {
@Override
public int compare(Empl lhs, Empl rhs) {
return ((Long) rhs.getSalary()).compareTo((Long) lhs.getSalary());
}
});
如果您使用的是 Java 8,您可以像这样使用 Stream#sorted with Comparator#comparingLong :
list = list.stream()
.sorted(Comparator.comparingLong(Empl::getSalary).reversed())
.collect(toList());
注意 .reversed()
当您使用它时,列表按后代排序,否则如果您不使用它,它按上升排序。
如果您使用 Java-8,那么您可以直接在提供必要比较器的列表上调用默认排序方法。
list.sort(Comparator.comparingLong(Empl::getSalary).reversed());
如何使用比较器按降序对列表进行排序(基于 long 值的工资)
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;
}
}
试试这个:
降序
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());
}
});
这样使用
Collections.sort(employeeList, new Comparator<VariationsItem>() {
@Override
public int compare(Empl lhs, Empl rhs) {
return ((Long) rhs.getSalary()).compareTo((Long) lhs.getSalary());
}
});
如果您使用的是 Java 8,您可以像这样使用 Stream#sorted with Comparator#comparingLong :
list = list.stream()
.sorted(Comparator.comparingLong(Empl::getSalary).reversed())
.collect(toList());
注意 .reversed()
当您使用它时,列表按后代排序,否则如果您不使用它,它按上升排序。
如果您使用 Java-8,那么您可以直接在提供必要比较器的列表上调用默认排序方法。
list.sort(Comparator.comparingLong(Empl::getSalary).reversed());