如何使用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;
}
}
用这种方式
Collections.sort(employeeList, new Comparator<VariationsItem>() {
@Override
public int compare(Empl lhs, Empl rhs) {
return ((Long) rhs.getSalary()).compareTo((Long) lhs.getSalary());
}
});
试试这个:
下降中
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());
}
});
如果您使用的是Java8,您可以使用Stream#排序与比较器#比较长这样:
list = list.stream()
.sorted(Comparator.comparingLong(Empl::getSalary).reversed())
.collect(toList());
注意。当您使用它时,列表是排序的后代,否则如果您不使用它,它是排序的上升趋势。
所以我有一个列表视图,我想在其中按降序排列NumberOfRecords。我有一个自定义数组适配器,但在将数据放入ArrayList之前,我调用了排序类,这是我接收JSON的异步任务: 这是我的排序类: } 但我得到的结果是: 我的排序实现错了吗?或者我应该在返回之前把它解析成整数吗?
问题内容: 可以按升序对它进行排序: 如何按降序排列? 问题答案: 要以相反顺序排序,请将作为参数传递给。 要获取a ,您必须明确要求使用4参数。如果您未指定所需的地图类型,则将获得默认值,而默认值是。由于不保留元素的顺序,因此绝对不会为您服务。 使用静态导入,它将变得更加令人愉快:
我想按值长度对Map进行排序。例如,我有这样的代码: 结果是: 所以我想做的是按值长度对这个Map进行排序,所以它返回:
考虑下面的哈希图: 具有诸如 我需要按值对hashmap进行降序排序,但如果值相等,则按键进行升序排序: 到目前为止,我试着分别按键排序,然后按值排序,但我不相信这种方法。除了创建更多的hashmaps之外,还有什么好方法呢?
问题内容: 我在这里有点深,我希望这实际上是可能的。 我希望能够调用一个函数,该函数将按字母顺序对列表中的所有项目进行排序。 我一直在寻找通过jQuery UI进行排序,但事实并非如此。有什么想法吗? 问题答案: 你 不会 需要jQuery来做到这一点… 易于使用…
问题内容: 我想按长度顺序排列一个ArrayList字符串,而不仅仅是数字顺序。 例如,该列表包含以下单词: 需要根据它们的长度差异将它们排序为特殊字符串,例如: 因此最终列表如下所示(方括号中的差异): 问题答案: 使用自定义比较器: 然后使用对列表进行排序。