HashSet 保证元素唯一性的原理

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

你可能感兴趣的:(hashcode,java)