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

根据自定义对象将对象列表排序为字段[duplicate]之一

薛华容
2023-03-14
public class Employee {

private String name;
private String id;
private Address address;

public String getName() {
        return name;
    }

    public Employee setName(String name) {
        this.name = name;
        return this;
    }


    public String getId() {
        return id;
    }

    public Employee setId(String id) {
        this.id = id;
        return this;
    }


    public Address getAddress() {
        return address;
    }

    public Employee setName(Address address) {
        this.address = address;
        return this;
    }


}

public class Address{
    
    public String streetName;
    public String streetNumber;

public String getName() {
        return streetName;
    }

    public Address setStreetName(String streetName) {
        this.streetName = streetName;
        return this;
    }


    public String getId() {
        return id;
    }

    public Address setStreetNumber(String streetNumber) {
        this.streetNumber = streetNumber;
        return this;
    }

}

Employee是上面定义的类之一,Address是Employee字段之一的数据类型之一。列表需要根据员工的地址字段中的街道名称进行排序。

这可以通过编写自定义比较器来完成。我正在寻找一种使用JavaLambda进行排序并获得排序列表的方法?

共有1个答案

仲孙文乐
2023-03-14

您可以创建一个比较器,如下所示或@Hadi J在注释中的方式:

Comparator<Employee> byStreetName = (emp1, emp2) -> emp1.getAddress().getName().compareTo(
                                                    emp2.getAddress().getName());

然后像这样使用它:

myList.sort(byStreetName);

或者如果您正在使用流

myList.stream().sorted(byStreetName)...
 类似资料:
  • 我的RESTendpoint返回包含对象字段的响应对象。序列化一切正常,但当我开始为此API编写客户端时,我遇到了反序列化问题。我根据一些关于使用Jackson进行多态序列化的问题/文章制作了这个示例代码。它演示了这个问题。 我的期望(以及我对列表的期望 我现在拥有的Object: 但我需要反序列化除动物列表之外的其他类型的对象。救命啊!

  • 我有一个基于时间戳对对象进行排序的场景。课程如下: 对于一个员工来说,有2种可能1、它会有一个地址列表。2.地址列表可以为空 address类有一个字段,它可以有诸如Residence、Office、ForeignHome之类的值。 每个都可以有地址列表,一个地址是住宅,另一个是办公室等。可以有多个居住地址,但只能有一个办公地址。 我想根据地址的起始日期对员工列表进行排序,地址类型=办公室。 我写

  • 我有一个对象列表,我需要按其中一个对象属性对其进行排序。 我可以用下面的代码按升序排序 但是,这是按升序排序列表,而我需要做的是按降序排序。在对对象列表进行排序时,这可能吗?

  • 按学生成绩的先后顺序,按“不及格”、“及格”、“不可用”(不按字母顺序)排序,成绩不及格的学生应排在名单的首位。然后是“通过”,然后是“不可用” 如果多个学生的结果相同,则按卷号升序排序。 最终结果应该如下所示。

  • 我们使用可比接口对ArrayList进行排序,但我如何修改可比接口的CompareTo函数以根据浮点字段对数组列表进行排序,因为该函数返回int。 我试图按用户评级(浮动数据类型)对电影数据进行排序。下面是我创建的类,用于保存通过Json提要从网络调用获得的不同值。

  • 问题内容: 我正在使用Jersey为服务器组件创建REST Web服务。 我要在列表中序列化的带有JAXB注释的对象如下所示: 我有一个REST资源来检索一个看起来像这样的发行版: 我还有一个REST资源来检索所有发行版的列表,如下所示: 我使用ContextResolver自定义JAXB序列化,当前配置如下: REST资源和上下文解析器都可以使用。这是第一个输出的示例: 这正是我想要的。这是列表