《Java与面向对象程序》-7.4 Map接口_第1页
《Java与面向对象程序》-7.4 Map接口_第2页
《Java与面向对象程序》-7.4 Map接口_第3页
《Java与面向对象程序》-7.4 Map接口_第4页
《Java与面向对象程序》-7.4 Map接口_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习目标掌握HashMap、TreeMap双列集合,能编程实现双列集合元素的存取主要内容HashMap集合TreeMap集合Map接口

在生活中,每个人都有唯一的身份证号,通过身份证号可以查询到个人的信息,二者是一对一的关系。在Java程序中,Map接口可以存储这种具有对应关系的数据。Map接口是一种双列集合,它的每个元素都包含一个键对象Key和一个值对象Value,键和值对象之间存在一种对应关系,称为映射。Map中的key可无序,不允许重复。Value可无序,允许重复。一个映射不能包含重复的键;每个键最多只能映射一个值。

Map接口

表7-6Map集合常用方法表7.4.1HashMap集合

HashMap集合是基于哈希表的Map接口的实现类。它用于存储键值映射关系,允许使用null值和null键,但必须保证不出现重复的键。HashMap集合不保证映射的顺序,下面通过一个例子来学习HashMap的用法。

7.4.1HashMap集合

【例7-16】HashMap的使用importjava.util.*;publicclassEx7_16{ publicstaticvoidmain(String[]args){ Mapm=newHashMap();//创建Map对象

m.put("1","Tom");//存储键和值

m.put("2","Helen"); m.put("3","Lily"); m.put("3","Mary"); for(inti=1;i<=3;i++){ Stringsi=newString(); System.out.println(i+":"+m.get(si.valueOf(i)));//根据键获取值

} System.out.println(m); if(m.containsKey("3")) System.out.println("Key:3isexist"); else System.out.println("Key:3isnotexist"); if(m.containsValue("Lily")) System.out.println("Value:Lilyisexist"); else System.out.println("Value:Lilyisnotexist"); }}7.4.1HashMap集合

前面讲过Map集合中的键具有唯一性,即:键相同,值覆盖。在程序开发中,经常需要遍历Map中所有的键值对,有两种方式可以实现,第一种方式就是先遍历Map集合中所有的键,再根据键获取相应的值,下面通过一个例子演示这种遍历方式。

7.4.1HashMap集合

【例7-17】遍历Map集合方式1importjava.util.*;publicclassEx7_17{ publicstaticvoidmain(String[]args){ Mapm=newHashMap();//创建Map对象

m.put("1","Tom");//存储键和值

m.put("2","Helen"); m.put("3","Lily"); SetkeySet=m.keySet();//获取键的集合

Iteratorit=keySet.iterator();//获取Iterator对象

while(it.hasNext()){//迭代键的集合

Objectkey=it.next(); Objectvalue=m.get(key);//获取每个键所对应的值

System.out.println(key+":"+value); } }}7.4.1HashMap集合

【例7-18】遍历Map集合方式2importjava.util.*;publicclassEx7_18{ publicstaticvoidmain(String[]args){ Mapm=newHashMap();//创建Map集合

m.put("1","Tom");//存储键和值

m.put("2","Helen"); m.put("3","Lily"); SetentrySet=m.entrySet(); Iteratorit=entrySet.iterator();//获取Iterator对象

while(it.hasNext()){ Map.Entryen=(Map.Entry)(it.next());//获取集合中键值对映射关系

Objectkey=en.getKey();//获取Entry中的键

Objectvalue=en.getValue();//获取Entry中的值

System.out.println(key+":"+value); } }}7.4.1HashMap集合

【例7-19】遍历Map集合方式3——获取值集合Collectionimportjava.util.*;publicclassEx7_19{ publicstaticvoidmain(String[]args){ Mapm=newHashMap();//创建Map集合

m.put("1","Tom");//存储键和值

m.put("2","Helen"); m.put("3","Lily"); Collectionv=m.values();//获取Map中所有值的集合

Iteratorit=v.iterator(); while(it.hasNext()){ Objectvalue=it.next(); System.out.println(value); } }}7.4.2TreeMap集合

在JDK中,Map接口还有一个常用的实用类TreeMap。TreeMap集合也是用来存储键值映射关系的,不允许出现重复的键,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的Comparator进行排序,具体取决于使用的构造方法。在TreeMap中是通过二叉树的原理来保证键的唯一性,这与TreeSet集合存储的原理一样。下面通过一个例子来了解TreeMap的具体用法。

7.4.2TreeMap集合

【例7-20】TreeMap集合的使用Collectionimportjava.util.*;publicclassEx7_20{ //创建TreeMap测试类

publicstaticvoidmain(String[]args){ TreeMaptm=newTreeMap(); tm.put("1","Tom"); tm.put("2","Helen"); tm.put("3","Lily"); SetkeySet=tm.keySet();//获取键的集合

Iteratorit=keySet.iterator();//获取Iterator对象

while(it.hasNext()){//判断是否存在下一个元素

Objectkey=it.next();//取出元素

Objectvalue=tm.get(key);//根据获取的键找到对应的值

System.out.println(key+":"+value); } }}

HashMap集合HashMap集

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论