具有多个字段的对象的Java比较器

具有多个字段的对象的Java比较器,第1张

具有多个字段的对象的Java比较器

您的方法可能是正确的,但是效率低下(不必要地调用equals)并且难以阅读。可以这样重写

public int compare(Collection c1, Collection c2){    int n;    n = c1.id.compareTo(c2.id);    if (n != 0) return n;    n = c1.entityType.compareTo(c2.entityType);    if (n != 0) return n;    n = c1.brandId.compareTo(c2.brandId);    if (n != 0) return n;    return c1.productId.compareTo(c2.productId);}

更好的方法是使用库方法将所有这些逻辑抽象掉,这样您就不必考虑它了。例如使用apache.commons.lang
CompareToBuilder

public int compare(Collection c1, Collection c2){    return new CompareToBuilder() .append(c1.id, c2.id) .append(c1.entityType, c2.entityType) .append(c1.brandId, c2.brandId) .append(c1.productId, c2.productId) .toComparison();}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5439692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存