建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法有关系吗?有关系,在compareTo的返回为0时,它表示的是 进行比较的两个 ...
建议75:集合中的元素必须做到compareTo和equals同步
实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法有关系吗?有关系,在compareTo的返回为0时,它表示的是 进行比较的两个元素时相等的。equals是不是也应该对此作出相应的动作呢?我们看如下代码:
1 class City implements Comparable<City> { 2 private String code; 3 4 private String name; 5 6 public City(String _code, String _name) { 7 code = _code; 8 name = _name; 9 }10 //code、name的setter和getter方法略11 @Override12 public int compareTo(City o) {13 //按照城市名称排序14 return new CompareToBuilder().append(name, o.name).toComparison();15 }16 17 @Override18 public boolean equals(Object obj) {19 if (null == obj) {20 return false;21 }22 if (this == obj) {23 return true;24 }25 if (obj.getClass() == getClass()) {26 return false;27 }28 City city = (City) obj;29 // 根据code判断是否相等30 return new EqualsBuilder().append(code, city.code).isEquals();31 }32 33 }
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)
关键词:JAVA
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。