是不是已经复写了equals方法?根据equals的返回值复写hashCode方法

解决方案 »

  1.   

    额,那有些身份证还有英文字母呢?重写个equals方法判断吧
      

  2.   

    怎么有个一样的帖子? 也是楼主发的吗?contains是先判断hashcode,然后再用equals的。
    所以把name或者省份证的String的hashCode作为Person的hashcode。
    equals里比较身份证。
      

  3.   

    只能说楼主第一步就错了,身份证是唯一的,而身份证太长了,hashCode之后,极有可能是不唯一的。所以不能用hashCode来代表一个人的身份,除非你采取容错机制。
      

  4.   

    hashCode 这种函数本身是作为类库内部使用的
    不知道为什么会有这么奇怪的需求,把hashCode写成身份证
    就算让你重写了,那equals怎么办,对象比较怎么办,序列化怎么办...
    考虑问题要全面
      

  5.   

    身份证号直接做为类的一个属性就好了啊- -
    干嘛要重写hashCode方法来得到那么麻烦- -