- 1、本文档共59页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java基础第7章课件课案
7.4 Set接口 7.4.2 HashSet集合 HashSet是Set接口的一个实现类,它所存储的元素是不可重复的,并且元素都是无序的。 当向HashSet集合中添加一个对象时,首先会调用该对象的hashCode()方法来确定元素的存储位置,然后再调用对象的equals()方法来确保该位置没有重复元素。 为了帮助大家更好地理解HashSet存储元素的不可重复性,接下来通过一个案例来演示HashSet集合的用法,具体如例7-9所示。 [点击查看例7-9] 7.4 Set接口 7.4.2 HashSet集合 HashSet集合之所以能确保不出现重复的元素,是因为它在存入元素时做了很多工作,使用HashSet集合的存储流程如下图所示。 7.4 Set接口 7.4.2 HashSet集合 当向集合中存入元素时,为了保证HasheSet正常工作,要求在存入对象时,需要重写Object类中的hashCode()和equals()方法。 接下来,通过一个案例来演示如何将Student对象存入HashSet,具体代码如例7-10所示。 在例7-10中,重复的Student对象没有去除,这时,假设id相同的学生就是同一个学生,对例7-10进行修改,修改后的代码如例7-11所示。 [点击查看例7-10] [点击查看例7-11] 7.4 Set接口 7.4.3 TreeSet集合 TreeSet是Set接口的另一个实现类,它内部采用平衡二叉树来存储元素,这样的结构可以保证TreeSet集合中没有重复的元素,并且可以对元素进行排序,平衡二叉树的存储结构如下图所示。 在上述二叉树中,左侧的子节点称为“左子树”,右侧的节点称为“右子树”,左子树上的元素应小于它的根结点,而右子树上的元素应大于它的根结点。 7.4 Set接口 7.4.3 TreeSet集合 在TreeSet集合内部使用的是平衡的二叉树,它的特点是存储的元素会按照大小排序,并能去除重复元素,例如,向一个二叉树中存入8个元素,依次为13、8、17、1、11、15、25,如果以排序二叉树的方式来存储,集合中的存储结构会形成一个树状结构。 7.4 Set接口 7.4.3 TreeSet集合 了解了二叉树存放的原理,接下来,通过一个案例来演示TreeSet对元素的排序效果,具体如例7-12所示。 [点击查看例7-12] 7.4 Set接口 7.4.3 TreeSet集合 在TreeSet集合中存放Student类型对象时,如果Student类没有实现Comparable接口,则Student类型的对象将不能进行比较,因此,为了在TreeSet集合中存放Student对象,必须使Student类实现Comparable接口。 接下来,通过一个案例来演示如何对Student对象按照指定的顺序进行排列,具体如例7-13所示。 [点击查看例7-13] 7.4 Set接口 7.4.3 TreeSet集合 有时候,定义的类没有实现Comparable接口或者实现了Comparable接口而不像按照定义的compareTo()方法进行排序,这时,可以通过自定义比较器的方式对TreeSet集合中的元素排序,即实现Comparator接口,在创建TreeSet集合时指定比较器。 接下来通过一个案例来实现TreeSet集合中字符串按照长度进行排序,具体如例7-14所示。 [点击查看例7-14] 7.5 Map接口 7.5.1 Map接口简介 在现实生活中,每个人都有唯一的身份证号,通过身份证号可以查询到这个人的信息,这两者是一对一的关系。 在应用程序中,如果想存储这种具有对应关系的数据,则需要使用JDK中提供的Map接口。 Map接口是一种双列集合,它的每个元素都包含一个键对象Key和值对象Value,键和值对象之间存在一种对应关系,称为映射。 从Map集合中访问元素时,只要指定了Key,就能找到对应的Value。 7.5 Map接口 7.5.1 Map接口简介 为了便于Map接口的学习,首先了解一下Map接口中定义的一些通用方法。 Map接口提供了大量的实现类,最常用的有HashMap和TreeMap 7.5 Map接口 7.5.2 HashMap集合 HashMap集合是Map接口的一个实现类,它用于存储键值映射关系,但必须保证不出现重复的键。 接下来通过一个案例来学习HashMap的用法,具体代码如例7-15所示。 [点击查看例7-15] 7.5 Map接口 7.5.2 HashMap集合 在程序开发中,经常需要取出Map中所有的键和值,这时,有两种方式可以实现。 (1)先遍历Map集合中所有的键,再根据键获取相应的值,如例7-16所示。 (2)先获取集合中所有的映射关系,然后从映射关系中取
文档评论(0)