一个接一个地按两个实体对对象排序

san*_* mk 2 java

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

Identifier  
Entry_Number  
Rest_of_the_data
Run Code Online (Sandbox Code Playgroud)

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

我知道我可以将这些实体中的一个实现Comparable作为关键,但我不知道如何对这两个实体进行顺序排序.
也就是说,在按Identifier我排序的时间排序之后Entry_Number,不应该干扰初始排序 - 第二次排序应该仅适用于具有相同Identifier值的那些实例.

所以,实际上,我希望能够传递"第二个关键"项来解决关系.

rol*_*lfl 6

您可以通过两个字段进行比较.使用以下方法创建Comparator<YourClass>实例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());
}
Run Code Online (Sandbox Code Playgroud)

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