PAGE5
《面向对象程序设计》教案
第27讲
教学对象
计算机科学技术专业
授课内容
10.7Map接口及实现类
10.8Collections类
课程标准
教学目标
(一)知识目标
掌握Map接口及实现类的定义和使用
掌握Collections工具类的常用方法
(二)能力目标
1.熟练掌握HashMap和TreeMap集合的基本操作,能够熟练使用Map集合解决实际问题
2.能够熟练使用Collections类解决实际问题
教学方法
采用讲授法、演示法、讨论法、案例教学。
学时及分配(第1学时50分钟)
课堂讲授30分钟
课堂练习20分钟
10.7Map接口及实现类
学时及分配(第2学时50分钟)
课堂讲授20分钟
课堂练习30分钟
10.8Collections类
知识点分析
重点:
HashMap和TreeMap集合的基本操作
Collections类
难点:
TreeMap集合元素的比较
Lambda表达式创建比较器对象
教学过程设计
内容
方式
问题导入
集合按照其存储结构可以分为两大类,即单列集合Collection和双列集合Map,在前几节课中,已经讲解了集合中单列集合Collection的使用,接下来本节中将讲解双列集合Map的使用。
内容要点
10.7Map接口及实现类
Map是用来存储“键/值”对的对象,通常称为映射。在Map中存储的关键字和值都必须是对象,并要求关键字是唯一的,而值可以重复。
10.7.1Map接口
Map接口实现基本操作的方法包括添加“键/值”对、返回指定键的值、删除“键/值”对等。
publicVput(Kkey,Vvalue):向映射对象中添加一个“键/值”对。
publicVget(Objectkey):返回指定键的值。
publicVremove(Objectkey):从映射中删除指定键的“键/值”对。
publicbooleancontainsKey(Objectkey):返回映射中是否包含指定的键。
publicbooleancontainsValue(Objectvalue):返回映射中是否包含指定的值。
publicintsize():返回映射中包含的“键/值”对个数。
publicbooleanisEmpty():返回映射是否为空。
publicvoidclear():删除映射中所有“键/值”对。
publicSetKkeySet():返回由键组成的Set对象。
publicCollectionVvalues():返回由值组成的Collection对象。
publicSetMap.EntryK,VentrySet():返回包含Map.EntryK,V的一个Set对象。
Map接口常用的实现类有HashMap类、TreeMap类、Hashtable类和LinkedHashMap类。
10.7.2HashMap类
HashMap类以散列方法存放“键/值”对,它的构造方法有:
HashMap():创建一个空的映射对象,使用默认的装填因子(0.75)。
HashMap(intinitialCapacity):用指定初始容量和默认装填因子创建一个映射对象。
HashMap(Mapm):用指定的映射对象m创建一个新的映射对象。
【案例10-13】使用HashMap存放几个国家名称和首都名称对照表,国家名称作为键,首都名作为值,然后对其进行各种操作。
【程序10-13】MapDemo.java
10.7.3TreeMap类
TreeMap类实现了SortedMap接口,它保证Map中的“键/值”对按关键字升序排序。TreeMap类的构造方法如下:
TreeMap():创建根据键的自然顺序排序的空的映射。
TreeMap(Comparatorc):根据给定的比较器创建一个空的映射。
TreeMap(Mapm):用指定的映射m创建一个新的映射,根据键的自然顺序排序。
将【程序10-13】HashMap改为TreeMap,按国家名的顺序输出Map对象。
10.8Collections类
java.util.Collections类提供了若干static方法实现集合对象的操作。这些操作大多对List操作,主要包括下面几个方面:排序、重排、查找、求极值以及常规操作等。
排序
使用sort()方法可对列表中元素排序,它有下面两种格式:
publicstaticTvoidsort(ListTlist