当前位置: 首页 > 知识库问答 >
问题:

如何使用comparator按降序对列表进行排序(基于长值薪资)

池麒
2023-03-14

如何使用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;
    }

}

共有3个答案

桑璞
2023-03-14

用这种方式

Collections.sort(employeeList, new Comparator<VariationsItem>() {
    @Override
    public int compare(Empl lhs, Empl rhs) {
        return ((Long) rhs.getSalary()).compareTo((Long) lhs.getSalary());
    }
});
阮华美
2023-03-14

试试这个:

下降中

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());
            }
});
时浩波
2023-03-14

如果您使用的是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字符串,而不仅仅是数字顺序。 例如,该列表包含以下单词: 需要根据它们的长度差异将它们排序为特殊字符串,例如: 因此最终列表如下所示(方括号中的差异): 问题答案: 使用自定义比较器: 然后使用对列表进行排序。