`
jyangzi5
  • 浏览: 213716 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Map

阅读更多

 

Map接口用于存储元素对(键和值)

Map接口中的方法:

    equals(Object o)   //比较对象是否相等

    hashCode    //

    clear()                      //清空map

    remove(Object key)  //删除key键对应的键值对

    put(Object key,Object value) //加入key-value对

    putAll(Map t)  

 

    entrySet()  //返回 Map 中所包含映射的 Set 视图。

                       //Set 中的每个元素都是一个 Map.Entry 对象,可以使用        

                       // getKey() 和 getValue() 方法(还有一个 setValue() 方法)访问后者的键元素和值元素

    keySet()     //返回 Map 中所包含键的 Set 视图。 删除 Set 中的元素还将删除 Map 中相应的映射(键和值)

    values()      //返回 map 中所包含值的 Collection 视图。 删除 Collection 中的元素还将删除 Map 中相应的映射(键和值)

    get(Object key)                  //返回与指定键(key)关联的值

    containsKey(Object key)     //判断是否包含key ,返回true or false;

    containsValue(Object value) //判断是否包含value ,返回true or false;

    isEmpty()   //判断map是否为空,返回true or false;

    size()   //判断map的大小,返回int

1. HashMap

HashMap提供所有可选的映射操作,并允许使用 null 值和 null 键,除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同

注意,此实现不是同步的。如果多个线程同时访问一个哈希映射,而其中至少一个线程从结构上修改了该映射,则它必须 保持外部同步。这一

般通过对自然封装该映射的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedMap 方法来“包装”该映射。最好在创建时完成这一操作,以防止对映射进行意外的非同步访问,如下所示:

Map m = Collections.synchronizedMap(new HashMap(...));

A: 遍历HashTable, 使用entrySet接口

    Java代码

Map<String,Integer> map=new HashMap<String,Integer>();   

map.put("1", 1);   

map.put("2", 2);   

map.put("3", 3);   

map.put("3", 3);   

     

Iterator itor=map.entrySet().iterator();   

while(itor.hasNext()){   

  Map.Entry<String,Integer> entry=(Map.Entry<String,Integer>)itor.next();   

  System.out.println("key="+entry.getKey().toString());   

  System.out.println("values="+entry.getValue().toString());   

}   

       Map<String,Integer> map=new HashMap<String,Integer>();

       map.put("1", 1);

       map.put("2", 2);

       map.put("3", 3);

       map.put("3", 3);

         

       Iterator itor=map.entrySet().iterator();

       while(itor.hasNext()){

         Map.Entry<String,Integer> entry=(Map.Entry<String,Integer>)itor.next();

         System.out.println("key="+entry.getKey().toString());

         System.out.println("values="+entry.getValue().toString());

       }

   

B: 遍历HashTable, 使用keySet 和 values接口

       Java代码

Set<String> keys=map.keySet();   

Iterator itor=keys.iterator();   

while(itor.hasNext()){   

    Object key=itor.next();   

    System.out.println("key="+key.toString());   

    System.out.println("value="+map.get(key).toString());   

}   

  

Collection co=map.values();   

Iterator itor=co.iterator();   

while(itor.hasNext()){   

    System.out.println("value="+itor.next());   

}   

       Set<String> keys=map.keySet();

       Iterator itor=keys.iterator();

       while(itor.hasNext()){

                Object key=itor.next();

                System.out.println("key="+key.toString());

                System.out.println("value="+map.get(key).toString());

        }

       Collection co=map.values();

       Iterator itor=co.iterator();

       while(itor.hasNext()){

                System.out.println("value="+itor.next());

        }

      

Hashtable和HashMap的区别:

1.Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类;

2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。即是说,在多线程应用程序中,不用专门的操作就安全地可以

使用Hashtable了;而对于HashMap,则需要额外的同步机制。但HashMap的同步问题可通过Collections的一个静态方法得到解决:

Map Collections.synchronizedMap(Map m)

这个方法返回一个同步的Map,这个Map封装了底层的HashMap的所有方法,使得底层的HashMap即使是在多线程的环境中也是安全的。

3.在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示

HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用

containsKey()方法来判断

分享到:
评论

相关推荐

    java循环Map java迭代Map

    Map a = new HashMap(); //方法一 Iterator it = a.entrySet().iterator(); while (it.hasNext()) { Map.Entry pairs = (Map.Entry) it.next(); System.out.println(pairs.getValue()); } //以下方法需要jdk5以上...

    map.zip_电机_电机MAP_电机效率_电机效率map_绘制电机MAP

    电机MAP(Map,通常指的是性能图或特性曲线)是展示电机效率、功率和其他关键性能参数随转速和转矩变化关系的图表。这种图表对于电机设计、优化和控制系统的研究具有重要意义。 电机效率MAP的绘制涉及到多个步骤和...

    Map (c++实现的简易map)

    在C++编程中,`Map`是一种非常重要的数据结构,它允许我们以键值对的形式存储数据,其中每个键(key)都是唯一的,并且通过这个键可以快速访问对应的值(value)。`Map`通常用于存储关联数组,它提供了一种灵活的...

    GameMap_地图_gamemap_gamemap官网_分割地图_gamemap下_

    《GameMap:游戏地图设计与分割技术详解》 在游戏开发中,地图是构建游戏世界不可或缺的元素。本文将深入探讨GameMap,一种专用于游戏地图设计和管理的工具,以及其中涉及到的关键技术和概念。 首先,我们要理解...

    map_电机_效率map_

    电机效率Map是电机性能分析中的一个重要概念,它用于描述电机在不同工况下运行的效率分布情况。在本文中,我们将深入探讨电机效率Map的绘制方法、意义以及如何利用工具进行计算。 电机效率是指电机输出的机械功率与...

    C语言头文件 MAP C语言头文件 MAP

    C语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言...

    map.toString()后转换成Map类型

    ### Map.toString()后转换成Map类型的实现方法及解析 在Java编程中,有时我们需要将一个`Map`对象转换为字符串形式进行存储或传输,而在接收端又需要将该字符串重新转换回`Map`对象以便进一步处理。本篇将详细介绍...

    Scala的Map相关方法整合

    ### Scala的Map相关方法整合 在Scala编程语言中,`Map`是一种常用的数据结构,用于存储键值对。本文将详细介绍Scala中Map的各种方法及其用途,帮助开发者更好地理解和使用这些功能。 #### 1. `def++(xs:Map[(A,B)]...

    rammap自动运行程序

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

    MapBrowser1.2.rar_MapBrows_MapBrowser1.03_mapbrowser 1.2_梦幻_梦幻西游

    《MapBrowser 1.2:梦幻西游的资源探索利器》 MapBrowser 1.2 是一款专为梦幻西游玩家设计的资源提取工具,它以其高效、易用的特性深受用户喜爱。作为一款强大的游戏辅助软件,MapBrowser 1.2 能够帮助玩家深入挖掘...

    m_map用法详解.rar_M map_m_map_m_map sst_matlab世界地图_世界地图 MATLAB

    《m_map在MATLAB中的应用详解》 MATLAB作为一个强大的数值计算和数据分析工具,其丰富的工具箱使得在各个领域都有广泛的应用。其中,m_map工具箱是专为地图绘制和地理数据分析而设计的,它提供了丰富的函数和数据,...

    map_map_增删查改_STL_C++_

    本节我们将深入探讨STL中的`map`容器,了解其基本概念,并通过实际代码示例展示如何进行增、删、查、改等操作。 `map`容器是一种关联容器,它将唯一的键值与关联的值进行存储,这里的键值通常是用来查找对应值的。`...

    详解Python map函数及Python map()函数的用法

    Python的`map()`函数是一个非常实用的内置高阶函数,它的主要作用是对一个或多个序列(通常是列表)的每个元素应用指定的函数,并返回一个新的列表,包含应用函数后的结果。这个函数非常适合在函数式编程中使用,...

    C++11 unordered_map与map(插入,遍历,Find)效率对比。

    在C++编程中,`std::map`和`std::unordered_map`是两种常见的关联容器,它们都用于存储键值对,但实现机制和性能特点有所不同。本篇文章将深入探讨这两种容器在插入、遍历和查找操作上的差异,并通过实例分析它们...

    c++中map的基本用法和嵌套用法实例分析

    C++中的`map`是一个关联容器,它存储键值对,其中每个键都是唯一的。`map`的数据结构通常实现为红黑树,提供了O(log n)的时间复杂度进行插入、查找和删除操作。下面我们将详细探讨`map`的基本用法和嵌套用法。 ### ...

    ResultSet 转为listmap

    ResultSet 转为 List&lt;Map&gt; ResultSet 转为 List&lt;Map&gt; 是一种常见的数据处理操作。在 Java 中,使用 JDBC 连接数据库时,通常会返回一个 ResultSet 对象,该对象包含了查询结果集的所有记录。为了方便数据处理和使用...

    素材_tilemap素材_使用TileMap快速构造2D关卡_

    TileMap(瓷砖地图)是一种高效且灵活的工具,常用于构建2D游戏的环境和场景。本素材包主要围绕如何使用TileMap来快速构造2D关卡,帮助开发者节省时间和精力,专注于游戏玩法的创新。 1. TileMap简介: TileMap是2...

    java一键xml转map,一键map转xml工具类

    在Java编程中,XML(可扩展标记语言)和Map(映射)是两种常见的数据存储和交换格式。XML因其结构化和易于解析的特性,在数据交换和配置文件中广泛使用,而Map则作为Java中存储键值对的高效数据结构。在实际开发中,...

    map工具,分析linux生產的map文件

    在Linux系统中,map文件是一种重要的调试和性能分析工具,它包含了程序在内存中的映射信息。本篇文章将深入探讨map工具以及如何分析由Linux生产出的map文件,旨在帮助IT专业人士更好地理解和优化他们的系统。 首先...

    MAP文件详细解析

    ### MAP文件详细解析 #### 一、引言 在软件开发过程中,遇到程序崩溃无疑是所有开发者最为头疼的问题之一。特别是当程序在特定环境下无故崩溃,或是无法追踪具体崩溃原因时,更是让人感到棘手。本文旨在介绍一种...

Global site tag (gtag.js) - Google Analytics