import java.util.*;
public class TestBasicContainer {
public static void main(String[] args) {
Collection collect = new HashSet();
collect.add("hello");
collect.add(new Integer(1000));
collect.add(new Name("william","AMG"));
collect.remove("hello");
collect.remove(new Integer(1000));
System.out.println(collect.remove(new Name("william","AMG")));
System.out.println(collect);
}
}
class Name{
private String firstName, lastName;
Name(String firstName,String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
String getFirstName(){
return firstName;
}
String getLastName(){
return lastName;
}
public String toString(){
return firstName + " " + lastName;
}
public boolean equals(Object obj){
if (obj == null){
return false;
}
if (obj instanceof Name){//这里大部分人会选择obj.(firstName和lastName).equals(name.(firstName和lastName))的方法来阐述。
Name name = (Name) obj;
if (((Name) obj).firstName == name.firstName && ((Name) obj).lastName == name.lastName){
return true;
}else{
return false;
}
}else{
return false;
}//((Name)obj).firstName中,((Name)obj).是可以不写的。
}
//override是一模一样的照抄,包括参数。所以这里我自以为是了。
/*public boolean equals(Name parName){
if (parName == null){
return false;
}
if (parName instanceof Name){
Name name = (Name) parName;
if (((Name) parName).firstName == name.firstName && ((Name) parName).lastName == name.lastName){
return true;
}else{
return false;
}
}else{
return false;
}
}*/
public int hashCode(){
return firstName.hashCode() ;
}
}
容器基本练习:equals与hashCode——判定对象是否相同与哈希值的关系
最新推荐文章于 2023-07-29 17:35:06 发布