java与c++的map使用比较

4 篇文章 0 订阅

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

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

 

c++的定义与设值:

#include <map>

map<string, int> 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<String,Integer> map = new HashMap<String,Integer>();//jdk1.5或以后

map.put("chargeId", 1);

 

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

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

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

 

c++的取值:

map<string, int>::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,所以不支持基本类型。

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值