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

按对象变量[重复]排序对象的LinkedList

戈安翔
2023-03-14

我该怎么做?我尝试使用collections.sort(List),但这不适用于对象。

我如何告诉Java使用分数作为比较的值?

共有1个答案

柴英锐
2023-03-14

collections.sort方法接受比较器作为其第二个参数。您可以传入定义所需顺序的比较器。例如,给定一个Person类:

class Person {
    private final String name;
    private final int score;

    Person(String name, int score) {
        this.name = name;
        this.score = score;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", score=" + score +
                '}';
    }
}

您可以使用collections.sort与自定义比较器一起按分数降序对人员进行排序,如下所示:

List<Person> list = new LinkedList<>(Arrays.asList(new Person("Jack", 3), new Person("Mike", 9)));

System.out.println("before: " + list);

Collections.sort(list, new Comparator<Person>() {
    @Override
    public int compare(Person o1, Person o2) {
        return o2.score - o1.score;
    }
});

System.out.println("after: " + list);

这将输出:

before: [Person{name='Jack', score=3}, Person{name='Mike', score=9}]
after: [Person{name='Mike', score=9}, Person{name='Jack', score=3}]
 类似资料:
  • 我试图排序我的对象数组,这些对象具有按日期最新的第一个和最新的最后一个日期值。 我有以下代码: 请注意,JS Date是新Date()接受的有效日期/格式。 我可以先订购最旧的,但不能先订购最新的,我尝试了以下方法: 当前我不能先按最新日期排序,它只能先按最早的日期排序。 谢啦

  • 举个例子 那么,如何按日期对该数组进行排序? 这只是一个小例子,但它就像数组中的1000个对象。我在互联网上搜索并找到了一些使用函数的示例,但它在我的大数组中不起作用。

  • 我有一个从JSON解析的复杂“order”对象。在结构的深处,我有秩序日期。我只能把它提取成字符串!现在我尝试对订单列表进行排序。 我的想法是创建一个新的列表,其中数组由两个元素组成,首先是Order对象本身,其次是解析为Date对象的Date。例如new object[]{order,new Date(order.getOrderDate())}。然后按第二个元素排序,然后解析回一个列表并返回。

  • 问题内容: 如何按其字段之一(例如或)对对象数组进行排序? 问题答案: 使用usort,这是从手册改编而成的示例: 您还可以将任何callable用作第二个参数。这里有些例子: 使用匿名函数(来自PHP 5.3) 从班级内部 使用箭头函数(来自PHP 7.4) 另外,如果要比较数字值,则应使用“比较”功能。

  • 当我对它进行降序排序时,它应该首先显示Parent3,因为它有一个Z。这是我当前的hql,它得到了1>2>3的错误结果: 如果没有distinct,尽管它选择了多个相同的父级,但它仍然很好。 我有一个模型设置如下: 编辑:在集合中按HQL顺序对其进行排序,尽管当双亲具有相同的children.name值时,它不会比较下一个可能的值。即。 如果Parent1有孩子abba,zeon Parent2有

  • 问题内容: 因此,在标头的c ++文档中,有一个不错的函数可让您对向量进行排序。我上课。我有一个指向该类()对象的指针向量,并且我想通过不同的参数(例如年龄,姓名长度等)来比较人员。 我已经有返回所需变量的函数,但是我不确定该怎么做。这是c ++参考http://www.cplusplus.com/reference/algorithm/sort/中的排序向量函数的链接。 问题答案: 很简单: 然