HashSet 保证元素唯一性的原理

HashSet 保证元素唯一性的原理
H4
概述:
set集合存放jdk提供的类对象的时候可以保证存放的对象的属性值 唯一
set集合存放的是自定义的类对象:
重写hashCode和equals方法:可以保证存放对象的属性值唯一
没有重写hashCode和equals方法:只能保证对象唯一
hasCode():他会根据不同的对象生成对应哈希值
生成规律:
1、不同类的对象尽量生成不一样的哈希值
【可以生成相同的哈希值】
2、同类的不同对象根据是否重写hasCode方法:
没重写:
不同的对象生成的哈希值不一样
重写:
不同对象的属性值不一样:生成的哈希值不一样
不同对象的属性值一样:生成的哈希值一样
3、同一个对象多次的调用hashCode方法生成的哈希值尽量一样
4、equals方法返回值为true的两个对象的哈希值一样 Set集合保证元素唯一的
原理:【必须掌握】
调用hasCode方法获取存入对象的哈希值和集合中已经拥有的对象的
哈希值进行比较
不一致:要存放的是全新的对象直接存入集合中
一致:不能保证对象是否为唯一的对象
进一步调用equals方法比较哈希值一样的对象的属性值
不一样:说明是全新的对象 存入集合
一样:说明集合中已经存入该对象了,舍弃存入

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值