我有一个包含以下变量(实体)的类:
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/