[总结]Map: C++ V.S. Java
整理一下Map在Java 和 C++的基本操作,欢迎大家一起交流学习。
附: 对于在C++中,选用map 还是 unordered_map,可以参考这篇讨论。相对简单粗暴的结论是,unordered_map更快一些,因为unordered_map在内部使用的是哈希表,而map在内部使用的是红黑树的结构,所以对于查找操作,前者是O(1), 后者其实是O(lgN)。
主要区别:
- c++中主要可以用 [] 来进行操作(add,update,access); Java 是没有[] 的,相应操作为 put(key,value), get(key)
- 对于通过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的更多相关文章
- JDK源码(1.7) -- java.util.Map<K,V>
java.util.Map<K,V> 源码分析 --------------------------------------------------------------------- ...
- Map<k,v>接口
https://docs.oracle.com/javase/8/docs/api/java/util/Map.html public interface Map<K,V> K—key,V ...
- 随笔1 interface Map<K,V>
第一次写笔记就从map开始吧,如上图所示,绿色的是interface,黄色的是abstract class,蓝色的是class,可以看出所有和图相关的接口,抽象类和类的起源都是interface ma ...
- cocos基础教程(5)数据结构介绍之cocos2d::Map<K,V>
1.概述 cocos2d::Map<K,V> 是一个内部使用了 std::unordered_map的关联容器模版. std::unordered_map 是一个存储了由key-value ...
- 关于jsp利用EL和struts2标签来遍历ValueStack的东东 ------> List<Map<K,V>> 以及 Map<K,<List<xxx>>> 的结构遍历
//第一种结构Map<K,<List<xxx>>> <body> <% //显示map<String,List<Object>& ...
- Map的遍历方法(java)
方法一.Set<Object> keySet();返回集合中所有的key组成的集合. 代码:Map<String , String > map=new HashMap();f ...
- An internal error occurred during: "Map/Reducelocation status updater".java.lang.NullPointerException
当我们运行wordcount代码时,出现报错,如下所示: An internal error occurred during: "Map/Reducelocation status upda ...
- ES6中的Map集合(与java里类似)
Set类型可以用来处理列表中的值,但是不适用于处理键值对这样的信息结构.ES6也添加了Map集合来解决类似的问题 一.Map集合 JS的对象(Object),本质上是键值对的集合(Hash结构),但是 ...
- Cocos2d-x之Map<K, V>
| 版权声明:本文为博主原创文章,未经博主允许不得转载. Map<K, V>是Cocos2d-x 3.0x中推出的字典容器,它也能容纳Ref类型.Map<K,V>是模仿C+ ...
随机推荐
- 给大家推荐几款OSX上非常好工具(针对程序员)
前两天,在App Store无意中发现几款免费工具,感觉非常好用,推荐给大家,希望大家喜欢. 一个是帮助文档管理软件,Dash.以前在Windows上开发,经常要自己搜集一些手册,文档,什么html手 ...
- “#ifdef __cplusplus extern "C" { #endif”的定义
平时我们在linux c平台开发的时候,引用了一些Cpp或者C的代码库,发现一些头文件有如下代码条件编译. #ifdef __cplusplus extern "C" { #end ...
- 关于zMPLS的设计解析
zMPLS是一个关于mpls标准实现的开源软件,它起源于2002年6月份,项目终止于2006年,目前它已经可以支持ipv6,ipv4,ldp,cr-ldp,rsvp,rsvp-te等MPLS协议簇.该 ...
- 成为一名优秀的C程序员
英文原文:To become a good C programmer 问题的提出 每过一段时间我总会收到一些程序员发来的电子邮件,他们会问我是用什么编程语言来编写自己的游戏的,以及我是如何学习这种编程 ...
- HADOOP再进阶:本地Yum软件源安装Cloudera Manager 5
参考URL: http://blog.csdn.net/yangzhaohui168/article/details/30118175 http://blog.csdn.net/yangzhaohui ...
- 单元测试之C/C++
如今TDD很火,我公司小,一般写代码不写测试用例的,一般就是随便测试下函数的输入输出,没用工具或框架来测试,非常简单,一点也不正规化. 在一种传统的结构化编程语言中,比如C,要进行测试的单元一般是函数 ...
- MySQL常用聚合函数
官方文档:Aggregate (GROUP BY) Functions Name Description AVG() Return the average value of the argument ...
- @@ROWCOUNT 含义
返回受上一语句影响的行数. 如果行数大于 20 亿,请使用 ROWCOUNT_BIG. Transact-SQL 语句可以通过下列方式设置 @@ROWCOUNT 的值: 将 @@ROWCOUNT 设置 ...
- BOT、BT、PPP形式介绍(3)
PPP 20世纪90年代后,一种崭新的融资模式-PPP模式(Public-Private-Partnership,即“公共部门-私人企业-合作”的模式)在西方特别是欧洲流行起来,在公共基础设施 ...
- ASP.NET文件组成(转载于Owen的BLOG)
一.扩展名: .aspx:窗体文件,为前台程序. .cs文件:类文件,主要为后台数据处理,供所有的.aspx文件的后台应用. .asmx文件:用于创建从其他应用程序使用的web服务的类. .css文件 ...