`

Map的使用

    博客分类:
  • JAVA
JDK 
阅读更多
     将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口。

  Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。映射顺序 定义为迭代器在映射的 collection 视图上返回其元素的顺序。某些映射实现可明确保证其顺序,如 TreeMap 类;另一些映射实现则不保证顺序,如 HashMap 类。

  注:将可变对象用作映射键时必须格外小心。当对象是映射中某个键时,如果以影响 equals 比较的方式更改了对象的值,则映射的行为将是不确定的。此项禁止的一种特殊情况是不允许某个映射将自身作为一个键包含。虽然允许某个映射将自身作为值包含,但请格外小心:在这样的映射上 equals 和 hashCode 方法的定义将不再是明确的。

  所有通用的映射实现类应该提供两个“标准的”构造方法:一个 void(无参数)构造方法,用于创建空映射;一个是带有单个 Map 类型参数的构造方法,用于创建一个与其参数具有相同键-值映射关系的新映射。实际上,后一个构造方法允许用户复制任意映射,生成所需类的一个等价映射。尽管无法强制执行此建议(因为接口不能包含构造方法),但是 JDK 中所有通用的映射实现都遵从它。

  此接口中包含的“破坏”方法可修改其操作的映射,如果此映射不支持该操作,这些方法将抛出 UnsupportedOperationException。如果是这样,那么在调用对映射无效时,这些方法可以(但不要求)抛出 UnsupportedOperationException。例如,如果某个不可修改的映射(其映射关系是“重叠”的)为空,则对该映射调用 putAll(Map) 方法时,可以(但不要求)抛出异常。

  某些映射实现对可能包含的键和值有所限制。例如,某些实现禁止 null 键和值,另一些则对其键的类型有限制。尝试插入不合格的键或值将抛出一个未经检查的异常,通常是 NullPointerException 或 ClassCastException。试图查询是否存在不合格的键或值可能抛出异常,或者返回 false;某些实现将表现出前一种行为,而另一些则表现后一种。一般来说,试图对不合格的键或值执行操作且该操作的完成不会导致不合格的元素被插入映射中时,将可能抛出一个异常,也可能操作成功,这取决于实现本身。这样的异常在此接口的规范中标记为“可选”。

  此接口是 Java Collections Framework 的成员。

  Collections Framework 接口中的很多方法是根据 equals 方法定义的。例如,containsKey(Object key) 方法的规范中写道:“当且仅当此映射包含针对满足 (key==null ? k==null : key.equals(k)) 的键 k 的映射关系时,返回 true”。不 应将此规范解释为:调用具有非空参数 key 的 Map.containsKey 将导致对任意的键 k 调用 key.equals(k)。实现可随意进行优化,以避免调用 equals,例如,可首先比较两个键的哈希码(Object.hashCode() 规范保证哈希码不相等的两个对象不会相等)。一般来说,只要实现者认为合适,各种 Collections Framework 接口的实现可随意利用底层 Object 方法的指定行为。

  常用操作说明

  void clear()

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

  boolean containsKey(Object key)

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

  boolean containsValue(Object value)

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

  Set<Map.Entry<K,V>> entrySet()

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

  boolean equals(Object o)

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

  V get(Object key)

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

  int hashCode()

  返回此映射的哈希码值。

  boolean isEmpty()

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

  Set<K> keySet()

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

  V put(K key, V value)

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

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

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

  V remove(Object key)

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

  int size()

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

  Collection<V> values()

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

Map的一般用法

1.声明一个Map:

   Map map = new HashMap();

2.向map中放值,注意: map是key-value的形式存放的,如:

       map.put("sa","dd");

3.从map中取值:

    String str = map.get("sa").toString,

    结果是: str = "dd'

4.遍历一个map,从中取得key和value:

    Map m= new HashMap();

    for(Object obj : map.keySet()){

          Object value = map.get(obj );

    }
分享到:
评论

相关推荐

    joinmap使用图文教程.doc

    Joinmap 使用图文教程 Joinmap 是一个功能强大的遗传图绘制软件,广泛应用于植物和动物遗传学研究中。本教程将逐步指导用户使用 Joinmap 软件进行遗传图绘制。 新建项目和设置数据格式 在 Joinmap 软件中,点击 ...

    c++MAP使用类

    在本案例中,"c++MAP使用例子程序"是一个在Visual Studio 2005环境下通过编译并运行的示例,旨在帮助学习者理解如何在C++中有效使用`std::map`。 `std::map`的基本操作包括插入元素、查找元素、删除元素以及迭代器...

    C++map使用小例子

    在本示例中,“C++map使用小例子”提供了关于如何在C++程序中使用`std::map`的基本操作和应用。 `std::map`的主要特点和操作包括: 1. **插入元素**:可以使用`insert`函数或直接使用下标运算符`[]`来插入键值对。...

    VC STL map 使用方法(添加,查找,删除)

    ### VC STL map 使用方法详解:添加,查找,删除 在C++编程中,`map`容器是标准模板库(STL)中一个非常强大的数据结构,用于存储键值对,其中键是唯一的,且默认情况下按照键的升序排列。在Visual C++ (VC) 编译...

    微信小程序 map 使用 Demo.zip

    在本篇内容中,我们将深入探讨微信小程序map使用Demo的核心知识点。 微信小程序map组件主要负责实现地图功能。开发者可以通过map组件在页面上嵌入地图,并实现定位、显示位置、缩放、拖动等功能。这对于需要地图...

    C++ map使用

    `map`容器内部使用红黑树(Red-Black Tree)数据结构实现,这保证了其插入、删除和查找操作的时间复杂度为O(log N)。这意味着即使在大量数据中,`map`也能快速定位到特定元素。在`map`中,每个元素都是一个键值对,...

    Android Google map使用

    Android Google map使用,Android Google map使用

    微软的评估和规划(MAP)4.0操作使用说明

    在实际操作中,用户应按照以下步骤使用`MAP 使用手册.docx`: 1. **下载和安装**:从微软官方网站获取最新版本的MAP工具,按照安装向导完成安装。 2. **配置扫描**:在MAP控制台中设置扫描参数,包括扫描范围...

    Java集合Collection、List、Set、Map使用详解.pdf

    "Java集合Collection、List、Set、Map使用详解" Java集合是Java编程语言中最基本也是最重要的一部分。能够正确地使用集合类和理解集合的实现原理对于Java程序的开发具有无比的好处。本文将详细解释Java集合的实现...

    map使用細節和陷阱.go

    map使用細節和陷阱

    Leaflet学习文档-Map使用说明

    Leaflet学习文档-Map使用说明

    Java集合Collection、List、Set、Map使用详解编程资料

    Java集合Collection、List、Set、Map使用详解

    rammap自动运行程序

    RAMMap是一款强大的内存分析工具,由微软的 Sysinternals 团队开发,主要用于分析和理解操作系统的内存使用情况。这个工具能够帮助用户深入洞察系统内存的分配和使用,包括物理内存、分页文件以及系统缓存等。在标题...

    depthmap10 软件使用教程

    ### Depthmap10软件使用教程知识点汇总 #### 一、深度了解Depthmap10 - **简介** - **发布日期与版本**:2010年9月发布的Depthmap10版本为10.08.00r。 - **作者**:Joao Pinelo 和 Alasdair Turner。 - **目的**...

    C++中的哈希容器unordered_map使用示例

    很久以来,STL中都只提供&lt;map&gt;作为存放对应关系的容器,内部通常用红黑树实现,据说原因是二叉平衡树(如红黑树)的各种操作,插入、删除、查找等,都是稳定的时间复杂度,即O(log n);但是对于hash表来说,由于无法...

    classMap的使用

    在给定的代码示例中,我们看到一个名为`createMap`的函数,其中创建了一个新的`classMap`实例,并使用`setAt`方法设置了一些键值对。接下来,我们将详细探讨`classMap`的使用、它的功能以及如何在JavaScript中实现...

    map使用实例小结,VS2005运行通过

    在C++编程中,`std::map` 是一个关联容器,它存储键值对,并且按照键的顺序组织元素。在这个实例中,我们...在实际应用中,`map`通常用于高效地存储和检索数据,其内部使用红黑树实现,保证了O(log n)的时间复杂度。

    java集合collection、list、set、map使用详解.doc

    java集合collection、list、set、map使用详解.doc

    js版本的map使用

    js map类似java map,想坤点分

    java中set、list和map的使用方法实例

    // 学习map对象容器的使用 // map对象容器里面储存的元素是(key,value)形式的键值对,比如(a,1)(b,20)(c,55) // key不可以重复,value可以重复 // 常用的map接口的实现类有HashMap,LinkedHashMap和TreeMap // ...

Global site tag (gtag.js) - Google Analytics