Java Collection框架在Collection的生命周期中需要基于不变字段的equals()和hashCode()方法

来源:互联网 发布:mysql主从复制ssl 编辑:程序博客网 时间:2024/04/30 14:32

Java Collection框架在Collection的生命周期中需要基于不变字段的equals()和hashCode()方法

import java.util.HashSet;
import java.util.Set;
import java.util.Collections;

 public class CollectionRun {

 public static void main(String[] args){

   Set set=new HashSet();
  
   Person p=new Person();
  
   set.add(p);
   System.out.println(set.contains(p));
  
   p.setId("T");
   System.out.println(set.contains(p));
  }
}

class Person{
 private String id;

 public String getId() {
  return id;
 }

 public void setId(String id) {
  this.id = id;
 }

 @Override
 public boolean equals(Object o) {
  // TODO Auto-generated method stub
  if (this == o) return true;
     if (o == null || !(o instanceof Person))
         return false;

     Person other = (Person)o;

     // unsaved objects are never equal
     if (id == null || other.getId() == null)
         return false;

     return id.equals(other.getId());

 }
 
 //将hashCode这个方法过行注释和不注释时运行的两种结果,考虑一下为什么?
 public int hashCode() {
     if (id != null) {
         return id.hashCode();
     } else {
         return super.hashCode();
     }
 }

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 电脑打开央视影音死机怎么办 先锋影音二级网页打不开怎么办 手机qq音乐登录失效怎么办 酷狗账号忘记了怎么办 手机qq音乐听不了歌怎么办 第一试用网密码忘了怎么办 玩h1z1画面卡顿怎么办 uu跑腿抢不到单怎么办 比特币加密忘了怎么办 路虎发现cd卡死怎么办 苹果手机帐号被锁定怎么办 苹果手机帐号锁定了怎么办 微博帐号被锁定怎么办 微博显示帐号被锁定怎么办 uc屏蔽了一个网站怎么办 uu跑腿送货遇到不方便收货怎么办 雷神加速器忘记暂停怎么办 obs直播开摄像头吃鸡掉帧怎么办 陌陌收到的礼物怎么办 吃了油腻的东西恶心怎么办 主播工资不发怎么办 主播工资被欠怎么办 直播平台不发工资坑主播怎么办 主播公司不发工资怎么办 梦幻月卡用完了怎么办 网易星球实名认证通过不了怎么办 认证过荔枝主播怎么办 苹果手机相机不对焦怎么办 苹果手机摄像头不能对焦了怎么办 闪电邮里面邮件太多怎么办 苹果手机和助理打不开怎么办 苹果我的世界打不开怎么办 ps试用7天到期了怎么办 皮肤锁不住水份怎么办 硫酸弄到皮肤上怎么办 直播时图像反看怎么办 快手直播权限被收回怎么办 快手直播权限被收回了怎么办 腾讯手游助手玩游戏卡怎么办 电脑直播视频打不开了怎么办 平板进水开不了机怎么办