这个类的equals方法已经重写了,如下
class myLink{
...
...public String getName(){
    return this.name;
}public boolean equals(Object obj){
    if(obj == null || !(obj instanceof myLink)
        return false;
    return ((myLink)obj).getName.equals(this.getName);
}
...
}请问还有什么需要做的东西么?

解决方案 »

  1.   

    你说的应该是Set 或 Map 
    还要重写 hashCode() 方法 他们是用 关键字的equals() 方法和hashCode () 方法来比较一个对象是否相等的
    List 中只能按 index 取对象
      

  2.   

    不是Set和Map,是Collection啊
    我也重写了hashCode()方法,是这样写的
    public int hashCode(){
        return this.getName.hashCode();
    }但是还是不行。
      

  3.   

    这些已经蛮详细了吧
    Collection myLinks = XXXX.getAllLinks();myLink temp = XXXXX.getInterestLink();if(myLinks.contains(myLink)){......}//就是这句话,即使myLinks中已经有myLink,contains方法也会返回false
      

  4.   

    因为还缺少一个setName(Name name)方法;
      

  5.   

    Collection还分set和list呢,set还分treeset和hashset呢,楼主能不能说具体一点呀。
      

  6.   

    ypdarling(冲动是魔鬼!)我用的就是 Collection没有用Set和List
    setName()方法:private void setName(String name){
        this.name = name;
    }我通过log跟踪以后发现,在collection集合的hashCode集合里面,包含了我所要查找的对象的
    hashCode(),
    但是问题是为什么contains方法不管用?
      

  7.   


    public boolean equals(Object obj){
        if(obj == null || !(obj instanceof myLink)
            return false;
        return ((myLink)obj).getName.equals(this.getName);
    }
    ...
    }
    这句话编译能够通过?
      

  8.   

    问题根本就不清楚:
    Collection只是一个接口,它有两个子接口List,Set
    而且java.util没有任何一个直接实现Collection的东西,所以如果是Set的话,并且是HashSet的话,就是hashCode有关,其他都和hashCode无关.
      

  9.   

    treeroot(旗鲁特)说得对
    Collection接口的不同实现有着不同的要求
    光说Collection有什么用啊?
    如果用list的话,根本就不用考虑equals