package copy;
import java.util.*;
public class EqualsTest {
/**
* equal方法
* 总结:
* equal比较的是哈希值,典型例子:比较对象
* 集合的equals其实比较的是两个集合之间
*
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Person jack = new Person("jack",123);
Person rose = new Person("rose",335);
Person lily = new Person("lily",321);
Person jack1 = new Person("jack",123);
Person tom = jack;//相等
if( jack.equals(jack1)){
System.out.println("Person--------相等");
}else{
System.out.println("不等呀");
}
Collection c = new ArrayList();
c.add(jack);
c.add(lily);
c.add(tom);
Collection c1 = new ArrayList();
c1.add(jack);
c1.add(lily);
c1.add(tom);
if(c.equals(c1)){
System.out.println("相等");
}else{
System.out.println("不相等");
}
}
}
class Person{
String name;
int id;
public Person (String name,int id){
this.name = name;
this.id = id;
}
//Object中的equals方法是比较两个对象的哈希值
//我们比较两个String类型的时候,其实没有创造地址
//只是引用了某个地址的值,如果两个值是一样的,说明
//地址也是一样的
//重写equals方法
public boolean equals(Object obj)
{
return this.hashCode() == obj.hashCode();
//奇怪,这里也是重写了一个比较哈希值的方法,和原来有什么差?
//答案:其实真的和原来没差,也就都是比较哈希值
}
}
import java.util.*;
public class EqualsTest {
/**
* equal方法
* 总结:
* equal比较的是哈希值,典型例子:比较对象
* 集合的equals其实比较的是两个集合之间
*
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Person jack = new Person("jack",123);
Person rose = new Person("rose",335);
Person lily = new Person("lily",321);
Person jack1 = new Person("jack",123);
Person tom = jack;//相等
if( jack.equals(jack1)){
System.out.println("Person--------相等");
}else{
System.out.println("不等呀");
}
Collection c = new ArrayList();
c.add(jack);
c.add(lily);
c.add(tom);
Collection c1 = new ArrayList();
c1.add(jack);
c1.add(lily);
c1.add(tom);
if(c.equals(c1)){
System.out.println("相等");
}else{
System.out.println("不相等");
}
}
}
class Person{
String name;
int id;
public Person (String name,int id){
this.name = name;
this.id = id;
}
//Object中的equals方法是比较两个对象的哈希值
//我们比较两个String类型的时候,其实没有创造地址
//只是引用了某个地址的值,如果两个值是一样的,说明
//地址也是一样的
//重写equals方法
public boolean equals(Object obj)
{
return this.hashCode() == obj.hashCode();
//奇怪,这里也是重写了一个比较哈希值的方法,和原来有什么差?
//答案:其实真的和原来没差,也就都是比较哈希值
}
}