equals的重写

  @Override
    public boolean equals(Object obj){
// 对比的双方是本体 this指向前面的引用名
            if (obj==this){
                return true;
            }
        if (obj instanceof People){
            People pp=(People)obj;
            return pp.sfz.equals(this.sfz);

        }else {
            return false;
        }
    }
//在重写equals时,必须重写hashCode
//    当equals判定相同时 两个的哈希值也相同,为了防止混淆将参数传入hashCode()
//    由于hashcode自带随机数 所以返回的哈希值不同
    @Override
    public int hashCode() {
//  对比的属性
//        hasecode自带了一个随机数
        return Objects.hash(sfz);
    }

//    @Override
//    public int hashCode() {
//            int result=17;
//            result=result*31+sfz.hashCode();
//        return result   ;
//    }

你可能感兴趣的:(笔记)