基本信息
文件名称:面向对象-教案(第26讲).doc
文件大小:74 KB
总页数:5 页
更新时间:2025-06-13
总字数:约4.57千字
文档摘要

PAGE5

《面向对象程序设计》教案

第26讲

教学对象

计算机科学技术专业

授课内容

10.4Set接口及实现类

10.5Queue接口及实现类

10.6案例学习——用集合存储、遍历员工记录

课程标准

教学目标

(一)知识目标

1.掌握Set接口及实现类的定义和使用

2.掌握Queue接口及实现类的定义和使用

(二)能力目标

1.熟练掌握HashSet和TreeSet集合的基本操作,能够熟练使用Set集合解决实际问题

2.熟练掌握Queue接口的基本操作,能够熟练使用LinkedList解决实际问题

教学方法

采用讲授法、演示法、讨论法、案例教学。

学时及分配(第1学时50分钟)

课堂讲授30分钟

课堂练习20分钟

10.4Set接口及实现类

学时及分配(第2学时50分钟)

课堂讲授20分钟

课堂练习30分钟

10.5Queue接口及实现类

10.6案例学习——用集合存储、遍历员工记录

知识点分析

重点:

HashSet和TreeSet集合的基本操作

ArrayDeque类和LinkedList类的使用

难点:

自定义比较器

教学过程设计

内容

方式

问题导入

在Connection接口中,有两个重要接口List和Set,上节课已经讲解了List接口及其实现类的使用,本节课将继续讲解Connection接口的另一个子接口Set接口及其实现类的使用。

内容要点

10.4Set接口及实现类

Set接口对象类似于数学上的集合概念,其中不允许有重复的元素。Set接口没有定义新的方法,只包含从Collection接口继承的方法。Set接口的常用实现类有:HashSet类、TreeSet类和LinkedHashSet类。

10.4.1HashSet类

HashSet类用散列方法存储元素,具有最好的存取性能,但元素没有顺序。

HashSet类的构造方法有:

HashSet():创建一个空的散列集合,该集合的默认初始容量是16,默认装填因子(loadfactor)是0.75。装填因子决定何时对散列表进行再散列。例如,如果装填因子为0.75(默认值),而表中超过75%的位置已经填入元素,这个表就会用双倍的桶数自动地进行再散列。对于大多数应用程序来说,装填因子为75%是比较合理的。

HashSet(Collectionc):用指定的集合c的元素创建一个散列集合。

HashSet(intinitialCapacity):创建一个散列集合,并指定集合的初始容量。

下面代码演示了HashSet的使用。

varwords=newHashSet();

words.add(one);

words.add(two);

words.add(three);

words.add(four);

words.add(one);//不能将重复的元素添加到集合中

for(varw:words)

System.out.print(w+);//fouronetwothree

从结果可以看到,在向Set对象中添加元素时,重复的元素不能添加到集合中。另外,由于程序中使用的实现类为HashSet,它并不保证集合中元素的顺序。

10.4.2TreeSet类

TreeSet实现一种树集合,它使用红-黑树为元素排序,添加到TreeSet中的元素必须是可比较的,即元素的类必须实现ComparableT接口。它的操作要比HashSet慢。

TreeSet类的默认构造方法创建一个空的树集合,其他构造方法如下。

TreeSet(Collectionc):用指定集合c中的元素创建一个新的树集合,集合中的元素按自然顺序排序。

TreeSet(Comparatorc):创建一个空的树集合,元素的排序规则按给定的比较器c的规则排序。

【程序10-9】TreeSetDemo.java

10.4.3对象顺序

创建TreeSet类对象时如果没有指定比较器对象,集合中的元素按自然顺序排列。所谓自然顺序(naturalorder)是指集合对象实现了ComparableT接口的compareTo()方法,对象则根据该方法排序。如果试图对没有实现ComparableT接口的集合元素排序,将抛出ClassCastException异常。另一种排序方法是创建TreeSet对象时指定一个比较器对象,这样,元素将按比较器的规则排序。如果需要指定新的比较规则,可以定义一个类实现ComparatorT接口,然后为集合提供一个新的比较器