java - 按两个实体依次对对象进行排序

标签 java

我有一个包含以下变量(实体)的类:

Identifier  
Entry_Number  
Rest_of_the_data

我想按如下方式对此类的实例进行排序:
Identifier 对实例进行排序变量,然后对于具有相同 Identifier 的实例值,按 Entry_Number 对它们进行排序变量。

我知道我可以用这些实体之一作为键来实现 Comparable,但我不知道如何对两个实体按顺序进行排序。
即按Identifier排序后当我按 Entry_Number 排序时,不应干扰初始排序 - 第二次排序应仅适用于具有相同 Identifier 的实例。值。

因此,实际上,我希望能够作为“第二个关键”项目传递来解决关系。

最佳答案

您可以像比较一个字段一样轻松地比较两个字段。创建 Comparator<YourClass> instance具有以下compare()方法:

public int compare(YourClass a, YourClass b) {
    int idDiff = a.getIdentifier().compareTo(b.getIdentifier());
    if (idDiff != 0) {
        return idDiff;
    }
    return a.getEntryNumber().compareTo(b.getEntryNumber());
}

如果您有空值或基元,则必须进行调整。

关于java - 按两个实体依次对对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26256812/

相关文章:

java - spring data couchbase中的自定义方法

java - 如何访问接口(interface)中的嵌套类 B?

java - "cascading" hibernate 实体监听器?

java - 使用quartz调度程序调度jasper报告

java - JSF panelGroup - 1 个跨度?

java - 模拟随机发送警报的服务器的最佳方法

java - jboss错误: java. lang.NoSuchMethodError : org. hibernate.internal.CoreMessageLogger.debugf(Ljava/lang/String;I)V

java - 如何使用spring在响应消息头中将内容类型设置为text/xml

java - Spring 数据JPA : Find all by example and page and return DTO (Projection)

java - 如何在 Scala 中将复杂的 JSON 字符串转换为 MAP