我有一个包含以下变量(实体)的类:
Identifier
Entry_Number
Rest_of_the_data
Run Code Online (Sandbox Code Playgroud)
我想按如下方式对这个类的实例进行排序:
按Identifier
变量对实例进行Identifier
排序,然后对于具有相同值的实例,按变量对它们进行排序Entry_Number
.
我知道我可以将这些实体中的一个实现Comparable作为关键,但我不知道如何对这两个实体进行顺序排序.
也就是说,在按Identifier
我排序的时间排序之后Entry_Number
,不应该干扰初始排序 - 第二次排序应该仅适用于具有相同Identifier
值的那些实例.
所以,实际上,我希望能够传递"第二个关键"项来解决关系.
您可以通过两个字段进行比较.使用以下方法创建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)
如果您有空值或基元,则必须进行调整.
归档时间: |
|
查看次数: |
115 次 |
最近记录: |