版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块六集合与泛型Map集合任务三Map集合现实生活中,每个人都有唯一的身份证号,通过身份证号可以快速查找到这个人的信息,这两者是一对一的关系。在Java程序中,如果想要存储这种具有对应关系的数据,可以使用Map集合,Map集合常用的实现类有HashMap集合和TreeMap集合。学习目标掌握Map集合的作用,能够简述Map集合常用的方法以及常用实现类的特点
先定一个小目标!掌握HashMap集合的使用,能够使用HashMap实现数据的增删改查掌握TreeMap集合的使用,能够使用TreeMap实现数据的增删改查Map集合简介Map集合是Java中用于存储和操作键值对的数据结构,其中的每个元素都包含一个键对象key和一个值对象value,它们之间是一对一的映射关系。Map集合中的键不允许重复,而值可以重复。Map集合简介Map集合定义了很多双列集合通用的集合操作方法,包括添加、删除和判断元素等一些基本方法,还针对双列集合的特殊结构提供了基于键和值的获取方法。常用方法如下所示。方法声明功能描述Vput(Kkey,Vvalue)向Map集合中添加元素(键值对),如果当前Map集合中已有一个键值对中的键与key相等,则新的键值对会覆盖原来的键值对Vremove(Objectkey)从Map集合中删除键为key的键值对,并返回key对应的value;如果该key不存在,则返回nullvoidclear()移除Map集合中所有键值对元素booleancontainsKey(Objectkey)查询Map集合中是否包含指定key的键值对,如果包含则返回trueMap集合简介接上页表格。方法声明功能描述booleancontainsValue(Objectvalue)查询Map集合中是否包含指定value的键值对,如果包含则返回truebooleanisEmpty()判断Map集合是否为空intsize()返回集合中元素的数量Vget(Objectkey)返回Map集合中指定键所映射的值,V表示值的数据类型。如果不包含则返回nullSet<K>keySet()返回Map集合中所有键对象的Set集合Collection<V>values()返回Map集合中所有值对象组成的Collection集合Set<Map.Entry<K,V>>entrySet()返回Map集合中所有键值对的Set集合HashMap集合案例演示HashMap集合的底层结构与HashSet类似,也是采用哈希表来存储元素。HashMap集合中的大部方法都是Map集合方法的实现,下面先通过一个获取文具价格的案学习HashMap集合的使用。Example13.java源代码HashMap集合案例演示案例的运行结果如下图所示。HashMap集合在程序开发中,对于Map集合的遍历操作也是非常常见的需求,通常有以下两种遍历方式。第一种是先通过keySet()方法获取到Map集合中所有键的集合,再通过get()方法获取每个键所对应的值。第二种是将每个键值对看作一个对象,通过entrySet()方法获取Map集合中所有键值对对象的Set集合,再遍历Set集合。HashMap集合案例演示下面通过一个案例演示前面讲解的两种遍历Map集合的方式。Example14.java源代码HashMap集合案例演示案例的运行结果如下图所示。HashMap集合HashMap集合中元素的存取顺序不一致,如果想要元素的添加顺序和输出顺序一致,可以使用LinkedHashMap类,它是HashMap的一个子类,其原理与LinkedHashSet相同,通过在内部使用双向链表来维护元素的添加顺序。HashMap集合案例演示下面使用LinkedHashMap集合存储数据并进行遍历。Example15.java源代码HashMap集合案例演示案例的运行结果如下图所示。TreeMap集合TreeMap是Map集合的一个实现类,它的底层与TreeSet集合类似,采用平衡二叉树的结构存储数据,并通过二叉树的特性保证集合中键的唯一性。TreeMap集合同样可以依赖自然排序或者自定义排序对集合中的键进行排序。TreeMap集合案例演示下面通过一个案例来演示TreeMap集合的用法。案例要求在TreeMap集合中存储学生类对象为键,学生的班级为对应的值的键值对集合,学生对象包含姓名和成绩两个属性,要求遍历Map集合并根据成绩降序排序,其次根据姓名升序排序。首先定义学生类Student.java。Student.java源代码TreeMap集合案例演示下面定义测试类,将学生对象和学生的班级以键值对的方式存入TreeMap集合中。Example16.java源代码TreeMap集合案例演示案例的运行结果如下图所示。【案例6-3】英汉互译案例描述本案例要求编写一个程序,模拟英汉互译的操作。首先程序会初始化n组对应的中英文翻译数据,每个英文单词有1个或多个中文翻译,一个中文词语也可能有多个英文翻译。用户输入英文单词或中文词语后,程序输出该单词或词语所有对应的中文翻译或英文翻译,若未搜索到该单词或词语,则给出相应的提示。【案例6-3】英汉互译案例效果【案例6-4】益智棋牌游戏案例描述棋牌游戏相信许多人都玩过。本案例要求编写一个程序模拟棋牌游戏洗牌发牌的过程。该游戏使用一副54张的扑克牌,牌面由花色和数字(字母)组成,花色有四种,分别表示黑桃、红桃、方片和梅花,小☺和大☻分别表示小王和大王。该游戏共有3位玩家参与,首先将这54张牌的顺序打乱每人轮流摸一次牌,剩余3张留作底牌,然后在控制台打印3位玩家的牌和3张底牌。【案例6-4】益智棋牌游戏案例描述本案例中洗牌的步骤需要把54张牌的顺序打乱,可以使用一个方法shuffle(),它可以用来打乱集合中元素的顺序。该方法是在java.utils.Collections类中定义的,具体用法如下。上述方法的参数表示要打乱的集合,该方法没有返回值。打乱操作会在原始集合上进行。Collections.shuffle(Listlist);【案例6-4】益智棋牌游戏案例效果任务小结本章主要对Java中常用集合类和泛型的相关知识进行了讲解。首先
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026山东威海市教育局直属学校第二批引进急需紧缺人才46人考试备考试题及答案解析
- 第13课 美丽家园欢迎你教学设计小学信息技术(信息科技)三年级第1册滇人版
- 第三单元 有备无患保健康教学设计小学地方、校本课程鄂科版生命安全教育
- 2026年中车北京二七机车有限公司校园招聘笔试参考题库及答案解析
- 2026西安市高新区第六高级中学教师招聘考试参考题库及答案解析
- 2026年合肥合庐新能源投资有限公司公开招聘工作人员考试备考试题及答案解析
- 零碳园区植被恢复与绿化策略
- 高压线路施工安全方案
- 施工现场人员任务跟踪管理方案
- 线索管理工作制度
- 陕西省宝鸡市2026届高考模拟检测试题(二)语文试题(含答案)
- 2026年公共数据与社会数据融合应用:数据基础设施与场景孵化协同机制
- 肺部真菌感染诊疗规范与临床实践
- 2025年贵州省高考物理试卷真题(含答案)
- 人教版统编六年级语文下册第二单元《口语交际:同读一本书》教学课件
- 2026贵州省气象部门第二批公开招聘应届毕业生22人笔试备考试题及答案解析
- 昆明市公安局盘龙分局2026年第一批勤务辅警招聘(120人)笔试模拟试题及答案解析
- 医院感染预防护理培训课件
- 医护一体化业务查房制度
- 第2课 幸福生活是奋斗出来的 课件+视频-2025-2026学年道德与法治三年级下册统编版
- 治疗性疫苗研发进展-洞察与解读
评论
0/150
提交评论