map 的介绍 java_java集合系列——Map介绍(七)

**一.Map概述 **

0.前言

首先介绍Map集合,因为Set的实现类都是基于Map来实现的(如,HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的)。

1:介绍

将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口。

**2:类图关系 **

5e0a6a05dc3c91ac31dc6724d42117ea.png

3:讲解

(1):AbstractMap是一个抽象类, 继承Map,实现了Map的大部分API,它的作用Map的实现类继承它,可以减少重复编码!

(2):SortedMap是一个接口 继承Map,自己也封装一下方法,SortedMap中的内容是排序的键值对,排序的方法是通过比较器(Comparator)。SortedMap的排序方式有两种:自然排序 或者 用户指定比较器。

(3):ConcurrentMap是一个接口,并且继承Map接口,在java.util.concurrent包下!

(4):HashMap 继承于AbstractMap,HashMap的内容是“键值对,但不保证次序”!

(5): TreeMap 继承于AbstractMap,且实现了NavigableMap接口;因此,TreeMap中的内容是键值对,有序的键值对!

(6):ConcurrentHashMap继承AbstractMap实现ConcurrentMap,是一个并发的哈希表!此类与 Hashtable 相似,但与 HashMap 不同,它不 允许将 null 用作键或值。线程安全,但是实现方法和Hashtable完全不同(并发情况可以使用) 。

(7):Dictionary是一个抽象类(数据字典),HashTable继承Dictionary并实现Map接口,也是键值对,但不保证次序!Hashtable是线程安全的,而且它支持通过Enumeration去遍历。(现在使用很少,并发操作效率太低)

**二.Map的API **

void clear()

从此映射中移除所有映射关系(可选操作)。

boolean containsKey(Object key)

如果此映射包含指定键的映射关系,则返回 true。

boolean containsValue(Object value)

如果此映射将一个或多个键映射到指定值,则返回 true。

Set> entrySet()

返回此映射中包含的映射关系的 Set 视图。

boolean equals(Object o)

比较指定的对象与此映射是否相等。

V get(Object key)

返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。

int hashCode()

返回此映射的哈希码值。

boolean isEmpty()

如果此映射未包含键-值映射关系,则返回 true。

Set keySet()

返回此映射中包含的键的 Set 视图。

V put(K key, V value)

将指定的值与此映射中的指定键关联(可选操作)。

void putAll(Map extends K,? extends V> m)

从指定映射中将所有映射关系复制到此映射中(可选操作)。

V remove(Object key)

如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。

int size()

返回此映射中的键-值映射关系数。

Collection values()

返回此映射中包含的值的 Collection 视图。

其中:

entrySet()用于返回键-值集的Set集合

keySet()用于返回键集的Set集合

values()用户返回值集的Collection集合

嵌套类:

interface Entry {

映射项(键-值对 )

**三.后言 **

接下来的博文介绍Map的实现类。主要介绍HashMap和TreeMap!其他的有时间会在去研究!

附:Map类图(来源网络)

b63cc63500dc7125ae744bbb1c378607.png

f59ab663e665458f8433a083a7151299.png

欢迎访问我的csdn博客,我们一同成长!

"不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值