整理一下Map在Java 和 C++的基本操作,欢迎大家一起交流学习。

附: 对于在C++中,选用map 还是 unordered_map,可以参考这篇讨论。相对简单粗暴的结论是,unordered_map更快一些,因为unordered_map在内部使用的是哈希表,而map在内部使用的是红黑树的结构,所以对于查找操作,前者是O(1), 后者其实是O(lgN)。

主要区别:

  1. c++中主要可以用 [] 来进行操作(add,update,access); Java 是没有[] 的,相应操作为 put(key,value), get(key)
  2. 对于通过key查找,c++采用iteator的迭代器操作,java中使用 containsKey(key)
  C++ Java 描述
构造  unordered_map<string,int>salary  Map<String, Integer> salaryMap = new HashMap<String, Integer>();  
增加 salary["Tom"] = 10;  salaryMap.put("Tom", 10);

更新:如果存在

加入:如果不存在

删除  salary.erase("Tom");  salary.remove("Tom");  如果不存在,忽略
查找 

if (salary.find("Tom") != salary.end()) {

cout << "Tom: " << salary["Tom"] ;

}

if (salaryMap.containsKey("Tom")) {

System.out.println("Tom: " + salaryMap.get("Tom"));

}

 通过key来查询 
修改   salary["Tom"] = 20;  salaryMap.put("Tom", 20);   
容量 

salary.size();

salary.empty();

salaryMap.size();

salaryMap.isEmpty();

 
清除   salary.clear();  salary.clear()  
引用  #include <unordered_map>

import java.util.Map;

import java.util.HashMap;

 
 

[总结]Map: C++ V.S. Java的更多相关文章

  1. JDK源码(1.7) -- java.util.Map<K,V>

     java.util.Map<K,V> 源码分析 --------------------------------------------------------------------- ...

  2. Map<k,v>接口

    https://docs.oracle.com/javase/8/docs/api/java/util/Map.html public interface Map<K,V> K—key,V ...

  3. 随笔1 interface Map<K,V>

    第一次写笔记就从map开始吧,如上图所示,绿色的是interface,黄色的是abstract class,蓝色的是class,可以看出所有和图相关的接口,抽象类和类的起源都是interface ma ...

  4. cocos基础教程(5)数据结构介绍之cocos2d::Map<K,V>

    1.概述 cocos2d::Map<K,V> 是一个内部使用了 std::unordered_map的关联容器模版. std::unordered_map 是一个存储了由key-value ...

  5. 关于jsp利用EL和struts2标签来遍历ValueStack的东东 ------> List<Map<K,V>> 以及 Map<K,<List<xxx>>> 的结构遍历

    //第一种结构Map<K,<List<xxx>>> <body> <% //显示map<String,List<Object>& ...

  6. Map的遍历方法(java)

    方法一.Set<Object>  keySet();返回集合中所有的key组成的集合. 代码:Map<String , String > map=new HashMap();f ...

  7. An internal error occurred during: "Map/Reducelocation status updater".java.lang.NullPointerException

    当我们运行wordcount代码时,出现报错,如下所示: An internal error occurred during: "Map/Reducelocation status upda ...

  8. ES6中的Map集合(与java里类似)

    Set类型可以用来处理列表中的值,但是不适用于处理键值对这样的信息结构.ES6也添加了Map集合来解决类似的问题 一.Map集合 JS的对象(Object),本质上是键值对的集合(Hash结构),但是 ...

  9. Cocos2d-x之Map<K, V>

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. Map<K, V>是Cocos2d-x 3.0x中推出的字典容器,它也能容纳Ref类型.Map<K,V>是模仿C+ ...

随机推荐

  1. POJ1276:Cash Machine(多重背包)

    Description A Bank plans to install a machine for cash withdrawal. The machine is able to deliver ap ...

  2. 各种位置和高度计算:.position()、.offset()、.outerHeight()、.scrollTop、.scrollHeight、.clientHeight

    1..position()和.offset() jquery的.position()获取相对于最近的position为relative或absolute的父元素的偏移,返回.position().le ...

  3. Python Udp Socket

    socket(套接字),传输层通信的端点,由IP和端口号组成(IP,Port),可以通过socket精确地找到服务器上的进程并与之通信 python2.6实现,基于AF_INET(网络套接字) 类型S ...

  4. Zookeeper,也要接触起来啦

    分布式的东东,就是部署也方便,但管理,想法,大集群应用是要点...! 参考如下URL简单实现 ,以后应用时多留意. http://blog.csdn.net/shirdrn/article/detai ...

  5. url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介

    url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介 2014年10月12日 16806次浏览 引子 浏览器URl地址,上网一定会用到,但是浏 ...

  6. 给logstash 模板添加触发器

  7. 黑马程序员_Java面向对象1_封装

    3.面向对象_封装 3.1面向对象概念 3.1.1理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程:强调的是功能行为(执行者) 面向对象:将功能封装进对象,强调具备了 ...

  8. spring加载properties配置文件

    public static void main(String[] args){    String path="E:/workspace/bocMarketData/src/config/P ...

  9. php字符串常用处理函数(数组的拆分、查找替换)

    //字符串常用函数    $a = "hello";    echo strlen($a); //输出字符串的长度        $b = "Hello";   ...

  10. 基于PCA和SVM的人脸识别

    程序中采用的数据集是ORL人脸库,该人脸库共有400副人脸图像,40人,每人10幅,大小为112*92像素,同一个人的表情,姿势有少许变化. 程序的流程主要分为三部分,数据的预处理(PCA降维和规格化 ...