欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Java集合框架之Map实例解析.docx

    • 资源ID:1394497       资源大小:47.13KB        全文页数:21页
    • 资源格式: DOCX        下载积分:7金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要7金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java集合框架之Map实例解析.docx

    JaVa集合框架之M叩实例解析1、Map概述1.1 什么是MapM叩是潞键映射到值(keyale)的对象,个映射不能包含正现的键:好个键双笫只能映时到一个值,MaP接口供应三种Colkxlion视图,允许以键集(keySel。)、值集(VidUCS()或神-值映射关系i(cntrySct()的形式衽看某个映射的内容(即狭得谊位对的内容).映时依次定义为迭代器在映射的CpIkXIion视图上返回其元素的依次.即可以映射得到键、俵和迸值的Set佻合,元素的依次是用得到的Sct集合所确定的.某些映射实现可明确保证其依次,如TreeMaP类:另些映射实现则不保证依次,如HaShM叩炎。1.2 Map与Collection的区分1.Map存播的是键值对形式的元素,镀唯。值可以虫笑。2 .Collcction存储的是单列元索,子接口Scl元素唯一,子接11.ist元素可乖攵.3 .Map集合的数据结构使针对健行效.跟值无关.COUediOn集合的数据结构是针对元泰有效关于Collection可以这里hiva乐/柑架之CoIlectiCn实例解析2、MaP继承体系下面列出了常见Map集合的稣承体系与他们的特点Map键唯一IHashMap基于哈希表的Map接口的实现。此实现供应全部可选的映射操作,并允许运用null值和null键。(除了非同步和允许运用null之外,HashMaP类与Hashtable大致相同。)此类不保证映射的依次,特殊是它不保证该依次恒久不变。此实现不是同步的.I1.inkedHashMapMaP接I的哈希表和链接列表实现,具有可预知的迭代依次。此实现与HashM叩的不同之处在F,后者维护着一个运行全部条目的双重链接列表.此链接列表定义了迭代依次,该迭代依次通常就是招铤插入到映射中的依次(插入依次)。此实现不是同步的IWeakHashMap以弱键实现的基于哈希表的MaP在WeakHashMap中,当某个键不再正常运用时,将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻挡垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。丢弃某个键时,其条目从映射中有效地移除,null值和null键都被支持。IHashtable此类实现个哈希表,该哈希表将键映射到相应的值。任何非null对象都可以用作键或值。Hashtable是同步的ITreeMap基于红黑树(Red-Blacktree)的NavigableMap实现。该映射依据其键的自然依次进行排序,或者依据创建映射时供应的Comparator进行排序,详细取决于运用的构造方法。此实现不是同步的3、MaP泛型接口MaP特点:由keyah>e键信为组成,键不行爪纹,值可无取大致包含如下功旎:插入(put、putAlIO)ON除(rcmovc()>获得(CntrySC1()、get。、kcySct().sizc()valucs()>推断(ConUinSKCy()、containsValue()¼cqualO¼isEmp<y()、清除(elear()>将校(replacc()rcplacC(KkCy,VoIdValuc,VnewValuc)jdkl.8之后后而示例会讲到它的)方法摘要voidclear()从今映射中移除全部映射关系(可选操作)。booleanContainSKey(ObjeCtkey)假如此映射包含指定犍的映射关系,则返回truebooleanContainsValue(Objectvalue)假如此映射招一个或多个键映射到指定值,则返回true。Set<Map.Entry<K,V>>entrySet()返回此映射中包含的映射关系的Set视图。booleanequals(Objecto)比较指定的对象与此映射是否相等。Vget(Objectkey)返回指定犍所映射的值:假如此映射不包含该键的映射关系,则返回nullinthashCode()返回此映射的哈希码值.booleanisEmpty()假如此映射未包含链-值映射关系,则返回true.Set<K>keyset()返回此映射中包含的键的Set视图。Vput(Kkey,Vvalue)将指定的值与此映射中的指定键关联(可选操作)。voidputAll(Map<?extendsK,?extendsV>m)从指定映射中将全部映射关系灾制到此映射中(可选操作).Vremove(Objectkey)假如存在一个槌的映射关系,则将其从今映射中移除(可选操作)。intsize()返回此映射中的键-值映射关系数。Collection<V>values()返回此映射中包含的值的Collection视图。3.1、 MaP集合遍历的常见方式方式1、依据键次得值(key->value)1 .获得全部犍的桀合2 .遍历键的集合,获得到每个健3 .依据键找值方式2、依据犍位对对象获得键和侬CiurySct->kcy.valuc)1 .获得全部键值对对象的集合2 .遍历键值对对象的集合,获得到每一个键值对对象3 .依据键值对对象找键和值3.11MaP运用示例publicclassMapReviewpublicstaticvoidmain(Stringargs)Map<String,String>map=newHaShMaPString,String>();map.put("000","qqq");map.put("003""rrr");map.put("001","www");map.put("002","eee");map.put("004","sss");System.out.println(ma);/干脆打印输出键值时遍历1:通过键值对对象entryset获得键与值Set<Entry<String,String>>entrySet-map.entrySet();for(Entry<StringjString>entry:entrySet)Stringkey=entry.getKey();Stringvalue=entry.getValue();System.out.println("key="+key+"value="+value);System.out.println("");遍历2:通过键keyset获得值Set<String>keyset-map.keySet();/得到键的集合for(Stringkey:keyset)Stringvalue-map.get(key);System.out.println("key=',+key+"VaIUe="+value);System.out.println("");/获得MaP值的集合Collection<String>values=map.values();System.out.println(values);/推断是否存在键和值System.out.println("containsKey="+map.containsKey("001");System.out.println(McontainsKey="+map.containsValue("eee"»;/向MaP集合添加元素时,若键存在,则返回之前与键对应的值Stringputmap.put("000","aaa");System.out.println("put=',+put);/output:qqq/defaultVreplace(Kkey,Vvalue)/替换功能,将旧值替换成新值,并返回旧值(若有的话)Stringreplace=map.replace(n03n,',666");System,out.println(',replace="+replace);System.out.println(map);/defaultbooleanreplace(Kkey,VoldValue,VnewValue/只有当键key存在,并且OldValue与newValue相等时,旧的值才会被替换成新的位,并且返回truebooleansuccess=map.replace("004","sss","111");System.out.println(*"replace2=",+success);/output:true)3.2. HashMap3.21. .HashMap的特点v三足哈布&结构,可以保il.网的nil:-I11.,一当向已存在key的MaP中添加元素时,会覆盖掉旧值,并将旧值返回。它允许运用null值和null键,但不保证映射的依次,特殊是它不保证该依次恒久不变(即不会保证存储的依次与输出的依次恒久不变)“此实现不是同步的。留能对于自定义对象,需取写其equals和hashCode方法才能保证其key的唯一性3.22. HashMap与Hashtable的异同除了非I用步和允许运用null之处,HashMap类与Hashtable大致相同3.23. HashMap的运用示例publicclassHashMapReviewpublicstaticvoidmain(Stringargs)testl();test2();)*自定义类型做key,*需重写其equals和hashcode方法才能保证其key的唯性privatestaticvoidtest2()HashMapcInfo,String>map=newHashMapvInfo,String>();lnfo(0,"aaa',)'000");Info(l,"bbb,')llll");InfO(3,',ddd")3333");lnfo(0,"aaa,'),4444");Info(2,"ccc")2222'');map.put(newmap.put(newmap.put(newmap.put(newmap.put(newPrintMaP(map);/output:/key=Infoid=3jadress=dddvalue=3333/key=Infoid=2,adress=cccvalue=2222/key=Infoid=,adress=aaavalue=00/key=Info(id三l,adress三bbbvalue三llll/key=Infoid=,adress=aaaValUe=4444/,与Inf。没有度?jequals和hashCode方法时,key出现重复元素)*String或基本数据类型的包装类做key.他们已重叮hashCode与equals方法*键唯一,重或添加会替换旧值成新值privatestaticvoidtestl()HaShMaPString,String>map=newHaShMaPString,String>();"123');"789");“456”);“321”);map.put("aaa",map.pt("bbb",map.put("aaa",map.put("ccc",System.out.println(map);/output:/

    注意事项

    本文(Java集合框架之Map实例解析.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开