1700444821
编写高质量代码:改善Java程序的151个建议 建议75:集合中的元素必须做到compareTo和equals同步
1700444822
1700444823
实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法有关系吗?有关系,在compareTo的返回为0时,它表示的是进行比较的两个元素是相等的。equals是不是也应该对此作出相应的动作呢?我们看如下代码。
1700444824
1700444825
class City implements Comparable<City>{
1700444826
1700444827
//城市编码
1700444828
1700444829
private String code;
1700444830
1700444831
//城市名称
1700444832
1700444833
private String name;
1700444834
1700444835
public City(String_code, String_name){
1700444836
1700444837
code=_code;
1700444838
1700444839
name=_name;
1700444840
1700444841
}
1700444842
1700444843
/*code、name的getter/setter方法省略*/
1700444844
1700444845
@Override
1700444846
1700444847
public int compareTo(City o){
1700444848
1700444849
//按照城市名称排序
1700444850
1700444851
return new CompareToBuilder()
1700444852
1700444853
.append(name, o.name)
1700444854
1700444855
.toComparison();
1700444856
1700444857
}
1700444858
1700444859
@Override
1700444860
1700444861
public boolean equals(Object obj){
1700444862
1700444863
if(obj==null){
1700444864
1700444865
return false;
1700444866
1700444867
}
1700444868
1700444869
if(obj==this){
[
上一页 ]
[ :1.70044482e+09 ]
[
下一页 ]