import    java.util.*;

public class Test{
         public static void main(String []args){
     Collection c = new ArrayList();
     c.add( "hello");                           // 1
     c.add( new Integer( "100"));         //2
     c.add( new Name( "vicky"));        // 3

     c.remove( "hello");                          //4
     c.remove( new Integer( "100"));        //5
     c.remove(( new Name( "vicky"));       //6
}
}
 
1、这里1和4,2和3是同一个对象,Name类如果没有重写equals方法,那么3和6就不是同一个对象,所以
 
最终容器c ,里面只有一个元素,就是Name类的对象vicky。
 
2、如果要重写Name类的equals方法,必须也重写Name类的hashCode方法。
public boolean equals(object OBJ){
         if(OBJ instanceof Name){
         Name name = (Name)OBJ;
         return(lastname.equals(name.lastname));    
}
}


public int hashCode(){
         return lastname.hashCode;
}
 
3 、instanceof是Java的一个二元操作符,和==,>,<是同一类东东。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。