public boolean equals(Object obj) {
return (this == obj);
}
Strings1 = new String(“kvill”),String s2 = new String(“kvill”);s1.equals(s2)为ture,
public native int hashCode();
public class TestEquals {
public static void main(String args[]) {
Student s1 = new Student("张一", 6);
Student s2 = new Student("张一", 6);
if (s1.equals(s2)) {
System.out.println("相同 s1的代码:" + s1.hashCode() + " s2的代码:"
+ s2.hashCode());
} else {
System.out.println("不相同");
}
}
}
class Student {
private int age;
private String name;
public Student() {
}
public Student(String name, int age) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int hashCode() {
return (this.name.hashCode() + this.age) * 31;
}
public boolean equals(Object obj) {
boolean result = false;
if (obj == null) {
result = false;
}
if (this == obj) {
result = true;
}
if (obj instanceof Student) {
Student stu = (Student) obj;
if (stu.getName().equals(this.name) && stu.getAge() == (this.age)) {
result = true;
}
} else {
result = false;
}
return result;
}
}
public static void main(String args[]){
String s1=new String("zhaoxudong"); //此语句创建了两个对象,一个是字符串对象“zhaoxudong”(存放于栈中的字面量),另一个是new后在堆中产生的对象。详细见下面的四.4
String s2=new String("zhaoxudong");
//上述两条语句一共是产生了三个对象,因为栈中只有产生了一个对象。
System.out.println(s1==s2);//false
System.out.println(s1.equals(s2));//true
System.out.println(s1.hashCode());//s1.hashcode()等于s2.hashcode() ,指向同一内存的引用
System.out.println(s2.hashCode()); //equals和hashCode方法只用于两个对象的比较和容器中,与对象的创建没有关系
Set hashset=new HashSet();
hashset.add(s1);
hashset.add(s2); /*在添加s1,s2时, hashset认为s1和s2是相等的,所以让s2覆盖了s1;*/
Iterator it=hashset.iterator();
while(it.hasNext()){
System.out.println(it.next());
} //最后在while循环的时候只打印出了一个”zhaoxudong”。
>public class HashSetTest {
public static void main(String[] args) {
HashSet hs=new HashSet();
hs.add(new Student(1,"zhangsan"));
hs.add(new Student(2,"lisi"));
hs.add(new Student(3,"wangwu"));
hs.add(new Student(1,"zhangsan"));
Iterator it=hs.iterator();
while(it.hasNext()){
System.out.println(it.next());
} } }
class Student {
int num;
String name;
Student(int num,String name) {
this.num=num;
this.name=name; }
public String toString() { return num+":"+name; }
}
1:zhangsan
1:zhangsan
3:wangwu
2:lisi
class Student{
int num;
String name;
Student(int num,String name){
this.num=num;
this.name=name; }
public int hashCode(){ //重写hashCode的方法
return num*name.hashCode(); }
public boolean equals(Object o) {
Student s=(Student)o;
return num==s.num && name.equals(s.name); //&&的优先级比==低,所以前面不必加括号
}
public String toString(){return num+":"+name; }
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有