(47)--12.3 Set接口面向对象程序设计.ppt





《(47)--12.3 Set接口面向对象程序设计.ppt》由会员分享,可在线阅读,更多相关《(47)--12.3 Set接口面向对象程序设计.ppt(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、12.3 Set接口12.3.1 Set接口简介接口简介Set接口和List接口一样,同样继承自Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充,只是比Collection接口更加严格了。与List接口不同的是,Set接口中元素无序,并且都会以某种规则保证存入的元素不出现重复。Set接口主要有两个实现类,分别是HashSet和TreeSet。其中,HashSet是根据对象的哈希值来确定元素在集合中的存储的位置,因此具有良好的存取和查找性能。TreeSet则是以二叉树的方式来存储元素,它可以实现对集合中的元素进行排序。12.
2、3 Set接口12.3.2 HashSet集合集合HashSet是Set接口的一个实现类,它所存储的元素是不可重复的,并且元素都是无序的。当向HashSet集合中添加一个对象时,首先会调用该对象的hashCode()方法来确定元素的存储位置,然后再调用对象的equals()方法来确保该位置没有重复元素。接下来通过一个案例来演示HashSet集合的用法:12.3 Set接口12.3.2 HashSet集合集合HashSet集合之所以能确保不出现重复的元素,是因为它在存入元素时做了很多工作。当调用HashSet集合的add()方法存入元素时,首先调用当前存入对象的hashCode()方法获得对象的
3、哈希值,然后根据对象的哈希值计算出一个存储位置。如果该位置上没有元素,则直接将元素存入,如果该位置上有元素存在,则会调用equals()方法让当前存入的元素依次和该位置上的元素进行比较,如果返回的结果为false就将该元素存入集合,返回的结果为true则说明有重复元素,就将该元素舍弃。12.3 Set接口12.3.2 HashSet集合集合根据前面的分析不难看出,当向集合中存入元素时,为了保证HasheSet正常工作,要求在存入对象时,需要重写Object类中的hashCode()和equals()方法。例程7-9中将字符串存入HashSet时,String类已经重写了hashCode()和equals()方法。但是如果将Student对象存入HashSet,结果又如何呢?12.3 Set接口12.3.2 HashSet集合集合接下来针对例程7-10中的Student类进行改写,假设id相同的学生就是同一个学生,改写后的代码如例程7-11所示。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 47-12.3 Set接口面向对象程序设计 47 12.3 Set 接口 面向 对象 程序设计

限制150内