Set的主要实现类HashSet(HashSet详解+相关练习题(下厨房:牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。))

一、Set的主要实现类HashSet

Set接口:存储无序的、不可重复的元素,Set中常用的方法都是Collection下定义的。

HashSet(主要实现类):

(1)无序性:不等于随机性,无序指的是元素在底层存储的位置是无序的。

(2)不可重复性:向Set中添加相同元素时,后面添加的元素无法添加。
                    说明:要求添加进Set中的元素所在的类,一定要重写hashCode()和equals()方法,
                               用来保证Set中元素的不可重复性

(3)元素的存储:使用了哈希算法
                             当向Set中添加元素时,首先调用此对象的hashCode()方法,计算此对象的哈希值,
                             决定此对象在Set中的存储位置。若此位置之前无对象存储,则此对象直接存储到这个位置,
                             若此位置有对象存储,在通过equals()方法比较两个对象是否相同,相同,后一个对象无法存入,
                             返回false时会都存储,但一般要求hashCode()与equals()方法一致,也就是说保证不同的对象哈希值不同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值