java与c++的map使用比较

java和c++都有map,java的Map是接口,M大写;c++的map是实现好的类,m小写。

所以java一般需要使用HashMap,c++使用map。

 

c++的定义与设值:

#include

map inMap;

inMap.clear();

inMap.insert(make_pair("chargeId", 1));

 

java的定义与设值:

import java.util.HashMap;

import java.util.Map;

Map map = new HashMap();//jdk1.4或以前

Map map = new HashMap();//jdk1.5或以后

map.put("chargeId", 1);

 

map是STL里,需要include。java在new的时候已经清空的内存,所以不需要c++这么麻烦的clear。

c++的insert和java的put差不多,但是c++需要麻烦的调用make_pair把键值对转化为一个结构体。

c++的map支持基本类型,但是java的是不支持的,只能用Integer,不能用int,put的时候只是自动装箱转化为Integer而已。

 

c++的取值:

map::iterator it = inMap.find("chargeId");

int mapValue = 0;

if (it != inMap.end())

{

mapValue = it->second;

}

 

java的取值:

Integer i = map.get("chargeId") == null ? 0 : map.get("chargeId");//jdk1.5或以后

 

c++的取值真心麻烦啊,写这么多行代码。java的优雅就是这么来的。

c++的find相当于java的get,但是c++必须返回一个迭代器,你需要通过迭代器来判断获取。

结构体里也定义好了first和second,你想获取哪个就哪个。

而java把全部的获取都做好了,你只需要get一下。如果没有,则返回null。java的基本类型不能为null,所以不支持基本类型。

 

你可能感兴趣的:(java,c++)