我想对对象列表进行排序。每个对象都有一个属性year
和一个属性name
。Java 列表需要排序。
班级:
public class Record {
String name;
int year;
}
例如,假设我们有以下记录(已经按属性 year 排序):
对象/记录:
2000 Paul
2000 Peter
2000 paul
2001 Paul P.
2001 micael
2001 jessica
2002 Michael
因为一年内有多条记录,我想按名称排序,这样相似的名称会显示为一组。因此,排序后,列表应如下所示:
期望的输出:
2000 Peter
2000 Paul
2000 paul
2001 Paul P.
2001 jessica
2001 micael
2002 Michael
jessica < micael
在 2001 年,因为在 2002 年有一个记录迈克尔(将 micael 与编辑距离等相似性度量相匹配)。此外,Paul P. < jessica
因为在 2000 年,我们也有保罗的记录。并且paul records > Peter
因为在 2001 年还有一个 Paul P. 记录。
我知道 Jaro Winkler、Levenshtein 等相似性指标,这些指标在我的代码中也能按预期工作。问题是如何订购有关二维的列表以及如何使用比较器来实现它(甚至可以使用简单的比较器吗?)