首页 > 编程语言 > 详细

[总结]Map: C++ V.S. Java

时间:2015-04-30 06:20:02      阅读:244      评论:0      收藏:0      [点我收藏+]

整理一下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

原文:http://www.cnblogs.com/stevencooks/p/4467912.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!