欢迎来到天天文库
浏览记录
ID:52128869
大小:72.63 KB
页数:22页
时间:2020-03-23
《Java集合框架之Map实例解析.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Java集合框架之Map实例解析1、Map概述1.1什么是MapMap是将键映射到值(key-value)的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。Map接口提供三种collection视图,允许以键集(keySet())、值集(values())或键-值映射关系集(entrySet())的形式查看某个映射的内容(即获取键值对的内容)。映射顺序定义为迭代器在映射的collection视图上返回其元素的顺序,即可以映射得到键、值和键-值的Set集合,元素的顺序是由得到的Set集合所决定的。某些映射实现可明确保证其顺序,如TreeMap类;另一些映射实现
2、则不保证顺序,如HashMap类。1.2Map与Collection的区别·1.Map存储的是键值对形式的元素,键唯一,值可以重复。·2.Collection存储的是单列元素,子接口Set元素唯一,子接口List元素可重复。·3.Map集合的数据结构值针对键有效,跟值无关,Collection集合的数据结构是针对元素有效关于Collection可以戳这里java集合框架之Collection实例解析2、Map继承体系下面列出了常见Map集合的继承体系与他们的特点---Map键唯一
3、------HashMap基于哈希表的Map接口的实现。此实现提供所有可选的映射操作,并允
4、许使用null值和null键。(除了非同步和允许使用null之外,HashMap类与Hashtable大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。此实现不是同步的。
5、------LinkedHashMapMap接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现与HashMap的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序(插入顺序)。此实现不是同步的
6、------WeakHashMap以弱键实现的基于哈希表的Map。在WeakHashMap中,当某个键不再正常使用时
7、,将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。丢弃某个键时,其条目从映射中有效地移除,null值和null键都被支持。
8、------Hashtable此类实现一个哈希表,该哈希表将键映射到相应的值。任何非null对象都可以用作键或值。Hashtable是同步的
9、------TreeMap基于红黑树(Red-Blacktree)的NavigableMap实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的Comparator进行排序,具体取决于使用的构造方法。此实现不是
10、同步的3、Map泛型接口Map特点:由key-value键值对组成,键不可重复,值可重复大致包含如下功能:·插入(put、putAll())、删除(remove())·获取(entrySet()、get()、keySet()、size()、values())·判断(containsKey()、containsValue()、equals()、isEmpty())、清除(clear())·替换(replace(),replace(Kkey,VoldValue,VnewValue)jdk1.8之后,后面示例会讲到它们)方法摘要voidclear()从此映射中移除所有映射关系
11、(可选操作)。booleancontainsKey(Objectkey)如果此映射包含指定键的映射关系,则返回true。booleancontainsValue(Objectvalue)如果此映射将一个或多个键映射到指定值,则返回true。Set>entrySet()返回此映射中包含的映射关系的Set视图。booleanequals(Objecto)比较指定的对象与此映射是否相等。Vget(Objectkey)返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回null。inthashCode()返回此映射的哈希码值。boolean
12、isEmpty()如果此映射未包含键-值映射关系,则返回true。SetkeySet()返回此映射中包含的键的Set视图。Vput(Kkey,Vvalue)将指定的值与此映射中的指定键关联(可选操作)。voidputAll(Mapm)从指定映射中将所有映射关系复制到此映射中(可选操作)。Vremove(Objectkey)如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。intsize()返回此映射中的键-值映射关系数。Collectionvalues()返回此映射中包含的值
此文档下载收益归作者所有